创建触发器时标识符无效

时间:2015-06-02 07:03:05

标签: oracle plsql oracle11g triggers

当我尝试创建此触发器时:

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":无效标识符

1 个答案:

答案 0 :(得分:1)

首先应将文字括在'

SELECT *  into vnbr from employer where role='utilisateu';

还向我们展示它只包含一个值的employer表?您正在*选择vnbr(number)变量。您应该从您所在的位置指定列名并插入vnbr。如果条件为多行,则查询将失败,因为它将返回多个值,并且您尝试将其保存为一个变量。