第 2 行的错误:PL/SQL:语句被忽略
Posted
技术标签:
【中文标题】第 2 行的错误:PL/SQL:语句被忽略【英文标题】:ERROR at line 2: PL/SQL: Statement ignored 【发布时间】:2014-05-29 22:26:43 【问题描述】: CREATE OR REPLACE TRIGGER log_FAMILY_increase
AFTER UPDATE OF FAMILY_INCOME ON STUDENT
FOR EACH ROW
BEGIN
INSERT INTO STUDENT_2 (NAME, SURNAME, NEW_FAMILY_INCOME)
VALUES (:NEW.NAME,SURNAME, :NEW.FAMILY_INCOME, 'New INCOME');
END;
在 oracle 10g 中,我收到以下错误消息: 第 2 行出现错误:PL/SQL:语句被忽略
【问题讨论】:
你搞定了吗? 仍然无法正常工作,我也得到了这个代码同样的错误!!在插入或更新 FAMILY_INCOME、BIRTHDATE 或 DELETE 之前创建或替换触发器 插入然后 DBMS_OUTPUT.PUT_LINE('Inserting');当更新(家庭收入)然后 DBMS_OUTPUT.PUT_LINE('更新家庭收入');当更新(生日)然后 DBMS_OUTPUT.PUT_LINE('更新生日');当删除然后 DBMS_OUTPUT.PUT_LINE('DELETING');结束案例;结束; 在下面查看我的回复,我更新了我的声明.. 【参考方案1】:您在此处缺少列名“(name, surname, new_family_income)
”,因为您试图将 4 个值插入 3 列中。我切换了语句,不列出列,也许这会有所帮助..
CREATE OR REPLACE TRIGGER log_family_increase
AFTER UPDATE OF family_income
ON student
REFERENCING NEW AS new OLD AS old
FOR EACH ROW
BEGIN
INSERT INTO student_2
VALUES (:new.name,
:new.surname,
:new.family_income,
'New INCOME');
END;
【讨论】:
它的效果非常好,我应该知道第四列,因为它是从另一个示例中编辑的!! @user3689309 - 尽管省略字段列表解决了这个问题,但我强烈建议在您编写的每个INSERT
语句中包含字段列表。首先,当新列添加到您的表中时,它将保护代码 - 您不必返回并修复该表的每个 INSERT
语句。其次,如果这在我的办公桌上进行代码审查,它会回来滴血......呃,红色墨水。 :-) 分享和享受。以上是关于第 2 行的错误:PL/SQL:语句被忽略的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 PL/SQL 触发器会引发“错误(2,2):PL/SQL:语句被忽略”和“错误(2,5):PLS-00204:函数或伪列'EXISTS'”错误?
PLS-00382:表达式类型错误,PL/SQL:语句被忽略
PL/SQL: SQL 语句被忽略 - 创建一个过程得到编译错误
ORACLE:错误错误(6,3):PL/SQL:SQL 语句被忽略和错误(8,3):PL/SQL:ORA-00933:SQL 命令未在过程中正确结束