【问题标题】:Trigger inputing information about action in table触发器在表中输入有关操作的信息
【发布时间】: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 关键字。

标签: sql oracle plsql triggers


【解决方案1】:

使用关键字

INSERT INTO DEPT_CHANGES VALUES(SYSDATE,操作);

Insert Examples

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 2011-06-19
    相关资源
    最近更新 更多