【问题标题】:Error(3,31): PL/SQL: ORA-00984: Column is not allowed here错误(3,31):PL/SQL:ORA-00984:此处不允许列
【发布时间】:2015-04-21 11:51:49
【问题描述】:

我正在编写以下 oracle sql 触发器

CREATE OR REPLACE TRIGGER scheme1.INSERTING_TRIGGER AFTER INSERT  ON scheme1.Bill
    FOR EACH ROW
    BEGIN
    INSERT INTO scheme2.DM_LOGGER(ID, TECHNOLOGY, WORKFLOW, NAME_EVENT, TIME_EVENT)
    VALUES(scheme1.Bill.id,'Repository','UP','Accepted', SYSDATE);   
    END;

它会引发以下错误:

  • 错误(2,1):PL/SQL:SQL 语句被忽略
  • 错误(3,31):PL/SQL:ORA-00984:此处不允许列。

如果我的猜测是正确的,那么问题出在 DM_LOGGER 的 ID 列中。 但我不确定它有什么问题。我只想在我的记录器中自动插入新账单记录中的 id。

【问题讨论】:

    标签: oracle plsql triggers compiler-errors


    【解决方案1】:

    您需要使用NEW记录:

    CREATE OR REPLACE TRIGGER scheme1.INSERTING_TRIGGER AFTER INSERT  ON scheme1.Bill
        FOR EACH ROW
        BEGIN
        INSERT INTO scheme2.DM_LOGGER(ID, TECHNOLOGY, WORKFLOW, NAME_EVENT, TIME_EVENT)
        VALUES(:NEW.id,'Repository','UP','Accepted', SYSDATE);   
        END;
    

    http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/triggers.htm#LNPLS99955

    【讨论】:

    • 谢谢,这行得通。我不知道 OLD 和 NEW 变量,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多