0
我试图创建一个触发器,如果Prog_Type
= 'EPISODE'
会触发。我收到一个坏的绑定错误 - PLS - 000049.我相信有什么毛病我DECLARE
状态SQL触发器坏绑定错误
CREATE OR REPLACE TRIGGER Seas_Pk_Trigger
BEFORE INSERT OR UPDATE OF Seas_ID ON Season_Table
FOR EACH ROW
DECLARE
Prog_Type VARCHAR2(7);
BEGIN
IF (:OLD.Prog_Type <> 'EPISODE')
THEN SELECT Seas_ID_Seq.nextval into :new.Seas_ID from dual;
END IF;
END Seas_Pk_Trigger;
/
嗨,我已经改变了代码,你推荐没有declare语句,但我仍然收到相同的绑定错误。它是IF(:OLD.Prog_Type <>'EPISODE')的错误吗? 'CREATE OR REPLACE TRIGGER Seas_Pk_Trigger''在插入或更新Seas_ID之前插入Season_Table'对于每一行''BEGIN'' IF(:OLD.Prog_Type <>'EPISODE')''然后选择Seas_ID_Seq.nextval到:new.Seas_ID from dual;''END IF;''END Seas_Pk_Trigger;''/' – Rob1991 2013-02-13 13:02:28
我试着创建你的表,序列和触发器完全如图所示,但我没有问题,坏的绑定,并且触发器编译得很好。你确定这个坏对象适用于这个对象吗?你的脚本中是否有其他的DDL语句?你在用什么IDE?或者你在使用SQL Plus吗? – Wolf 2013-02-13 16:20:17
嗨,我正在使用Oracle 11g。我放弃了所有的约束和表格并重建它。我建立了表格,然后是约束条件,然后是上面描述的这一个触发器。然而,我在'((:OLF.Prog_Type)''上收到这个错误的绑定变量错误00049。如上所述'Prog_Type'列在'Program_Table'而不是'Season_Table'中,所以它不能绑定变量的原因是因为它找不到变量,即我需要引用'Program_Table'? – Rob1991 2013-02-13 17:39:22