Plsql 基于标志的PL/SQL更新

Plsql 基于标志的PL/SQL更新,plsql,Plsql,我有一个表“flags”,其中包含带有“name”和“value”的标志,其中“name”是标志的名称,“value”是“T”或“F” 我想根据名为“enable_feature”的标志,以以下方式更新表: BEGIN; IF ((SELECT flags.value FROM flags WHERE flags.name = 'enable_feature') = 'T') UPDATE... SET...; ELSE UPDATE... SET...; END IF; END; 我的问题似

我有一个表“flags”,其中包含带有“name”和“value”的标志,其中“name”是标志的名称,“value”是“T”或“F”

我想根据名为“enable_feature”的标志,以以下方式更新表:

BEGIN;
IF ((SELECT flags.value FROM flags WHERE flags.name = 'enable_feature') = 'T')
UPDATE... SET...;
ELSE
UPDATE... SET...;
END IF;
END;
我的问题似乎在IF语句中。具体来说,我得到以下错误:

PLS-00103:在期望一个 以下:

(+case mod new not null continue avg count current) 存在执行所有合并之前的最大最小sql STDEV和方差 时间戳间隔日期管道 如何修改此语句,以便根据“enable_feature”的值执行UPDATE/SET语句(UPDATE/SET语句位于不同的表上)

DECLARE
  v flags.value%type;
BEGIN
  SELECT flags.value into v FROM flags WHERE flags.name = 'enable_feature';
  IF v = 'T' THEN
    UPDATE... SET...;
  ELSE
    UPDATE... SET...;
  END IF;
END;