当我尝试创建此触发器时:
CREATE OR REPLACE trigger T25
BEFORE DELETE ON employer
FOR EACH ROW
DECLARE
vnbr number;
BEGIN
SELECT * into vnbr from employer where role="utilisateu";
if(:old.role=vnbr) THEN
RAISE_APPLICATION_ERROR(-20001,'impossible de supprimer ce role');
END IF;
END;
/
我收到此错误:
PL / SQL:忽略SQL语句
PL / SQL:ORA-00904:" utilisateu":无效标识符
答案 0 :(得分:1)
首先应将文字括在'
SELECT * into vnbr from employer where role='utilisateu';
还向我们展示它只包含一个值的employer
表?您正在*
选择vnbr(number)
变量。您应该从您所在的位置指定列名并插入vnbr
。如果条件为多行,则查询将失败,因为它将返回多个值,并且您尝试将其保存为一个变量。