【问题标题】:PLS-00201 Error Occured for the TriggerPLS-00201 触发器发生错误
【发布时间】:2015-09-02 13:33:48
【问题描述】:

我为自动增量编写了一个触发器 请在下面找到序列和触发器。

CREATE SEQUENCE WEB_FE_IPO_IPO_APPLICATION_SEQ;
CREATE OR REPLACE TRIGGER WEB_FE_IPO_IPO_APPLICATION_TRG
  BEFORE INSERT
    ON WEB_FE_IPO_IPO_APPLICATION
      REFERENCING NEW AS NEW_ROW
      FOR EACH ROW
BEGIN
SELECT WEB_FE_IPO_IPO_APPLICATION_SEQ.NEXTVAL INTO NEW_ROW.APPLICATION_ID FROM dual;
END;
/ 

我的问题是当我执行此触发器时,它给了我一个如下所示的错误。

Error(2,1): PL/SQL: SQL Statement ignored
Error(2,52): PLS-00201: identifier 'NEW_ROW.APPLICATION_ID' must be declared
Error(2,75): PL/SQL: ORA-00904: : invalid identifier

我找不到问题。有人可以帮忙吗?

【问题讨论】:

    标签: oracle plsql oracle11g


    【解决方案1】:

    您需要在new_row 前加上冒号。 into :new_row.application_id。由于您使用的是 11g,因此不需要 select into,您可以直接分配 nextval。我也看不出有什么理由去更改:new 伪记录的名称。所以我就这么做了

    CREATE OR REPLACE TRIGGER WEB_FE_IPO_IPO_APPLICATION_TRG
      BEFORE INSERT ON WEB_FE_IPO_IPO_APPLICATION
      FOR EACH ROW
    BEGIN
      :new.application_id := WEB_FE_IPO_IPO_APPLICATION_SEQ.NEXTVAL;
    END;
    

    【讨论】:

      猜你喜欢
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      相关资源
      最近更新 更多