【问题标题】:Invalid identifier when creating trigger创建触发器时标识符无效
【发布时间】:2015-08-15 20:33:01
【问题描述】:

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

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

【问题讨论】:

标签: oracle plsql oracle11g triggers


【解决方案1】:

首先文字应该包含在'

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

还向我们展示employer 表,它只包含一个值?。您正在将 * 选择到 vnbr(number) 变量中。您应该指定要从中获取并插入到vnbr 的列名。此外,如果条件为真多于一行,查询也会失败,因为它将返回多个值,而您正试图将其保存到一个变量中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多