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