我想寫一個觸發器,它基本上在另一個表上創建一個表時更新一個表。PLS-00049:壞綁定變量'NEW.REQUEST_DATETIME'問題
CREATE OR REPLACE TRIGGER "DTISCDB_OWNER"."REQUEST_CONTEXT_TR"
AFTER INSERT OR UPDATE ON REQUEST_CONTEXT
FOR EACH ROW
BEGIN
:NEW.REQUEST_DATETIME := SYSDATE;
:NEW.ID := TRUNC(DBMS_RANDOM.VALUE(100000000000000000000000000000000000,999999999999999999999999999999999999));
SELECT bre_conditions_seq.NEXTVAL INTO :OLD.seq_number FROM dual;
SELECT REQUEST_CONTEXT.CURRENT_STATE INTO :NEW.STATE FROM REQUEST_CONTEXT;
SELECT REQUEST_CONTEXT.REQUEST_ID INTO :NEW.REQUEST_ID FROM REQUEST_CONTEXT;
INSERT INTO REQUEST_LIFECYCLES(ID,SEQ_NUMBER,STATE,REQUEST_ID,REQUEST_DATETIME)
VALUES(:NEW.ID,:NEW.seq_number,:NEW.STATE,:NEW.REQUEST_ID,:NEW.REQUEST_DATETIME);
END;
該錯誤似乎暗示'request_context'中沒有'request_datetime'。在那兒?一旦你解決了這個問題,你就不能改變':old.seq_number',所以沒有任何意義。你不能從'request_context'中選擇。爲什麼你會生成一個隨機數而不是僅僅使用一個序列來生成':new.id'? –
您是否試圖使用':NEW'來引用您要插入的表格中的列,而不是觸發器所針對的表格?你可以直接在'values'子句中使用'sysdate'。然而':OLD'參考仍然令人困惑。你似乎對什麼新舊代表感到困惑。 –