【问题标题】:After-update trigger gets 'bad bind variable' error更新后触发器出现“错误的绑定变量”错误
【发布时间】:2017-12-06 10:48:05
【问题描述】:

当试图在 Oracle 中创建一个触发器,在将表 AFGEVINKT 从 0 更改为 1 后更新表 PAND 时:

CREATE OR REPLACE TRIGGER AU_BGT_PAND_MUTATIE
AFTER UPDATE OF AFGEVINKT ON BGT_PAND_MUTATIE 
FOR EACH ROW 

BEGIN 

   UPDATE PAND
   SET VRIJNUMMER1 = NULL  
   WHERE PAND.ID =: BGT_PAND_MUTATIE.ID;

END;

我收到以下消息:

Error(5,20): PLS-00049: bad bind variable 'BGT_PAND_MUTATIE.ID'

BGT_PAND_MUTATIE 具有列 IDAFGEVINKT。表 PAND 具有列 IDVRIJNUMMER1

我必须做些什么才能完成这项工作?

【问题讨论】:

    标签: oracle triggers sql-update


    【解决方案1】:

    您目前拥有:

    WHERE PAND.ID =: BGT_PAND_MUTATIE.ID;
    

    =: 中的冒号使以下标识符被视为绑定变量。但是,您不直接引用该表;你用the NEW psdeudorecord:

    WHERE PAND.ID = :NEW.ID;
    

    【讨论】:

      猜你喜欢
      • 2021-09-20
      • 2012-09-24
      • 1970-01-01
      • 2013-02-06
      • 2012-11-04
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多