【发布时间】:2017-01-19 13:21:01
【问题描述】:
我创建了一个表来存储有关在其中一个表中的任何更新、插入或删除数据的时间信息。
CREATE TABLE dept_changes ( data DATE, action VARCHAR2(16) );
现在我想创建将数据输入表的触发器:
CREATE OR REPLACE TRIGGER dept_changes_trig AFTER UPDATE OR INSERT OR DELETE ON departments
DECLARE
action VARCHAR2(16);
BEGIN
IF UPDATING THEN
action:='upd';
END IF;
IF INSERTING THEN
action:='ins';
END IF;
IF DELETING THEN
action:='del';
END IF;
INSERT INTO DEPT_CHANGES (SYSDATE, action);
END;
我在第 12 行遇到 2 个错误(DELETING 条件语句的 END IF)。
Error(12,5): PL/SQL: SQL Statement ignored
Error(12,46): PL/SQL: ORA-00926: missing VALUES keyword
我不明白,我错过了什么VALUES?触发器需要什么才能正常工作?
【问题讨论】:
-
查看第 12 行第 46 列。您的 INSERT 语句缺少 VALUES 关键字。 INSERT INTO 表 VALUES(值)
-
谢谢,它有效。我没有理解错误,我的教程错过了 VALUES 关键字。