4
我有審計觸發器,用於存儲在EMP表的任何行上執行的操作。觸發器無法初始化變量
這觸發工作正常,但在某些情況下(這很少發生,而我不能確定確切的條件)它給了我
Oracle錯誤:ORA-01400:不能將NULL插入(「MY_SCHEMA」 「HIST_EMP」。「ACTION」)
CREATE OR REPLACE TRIGGER HIST_EMP_AIUD
AFTER UPDATE OR INSERT OR DELETE
ON EMP
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
v_action VARCHAR2(1) := 'D';
BEGIN
IF INSERTING THEN
v_action := 'A';
ELSIF UPDATING THEN
v_action := 'U';
END IF;
IF DELETING THEN
INSERT INTO hist_emp (source_rowid, source_date, action)
VALUES (:old.rowid, SYSDATE, v_action);
ELSIF INSERTING OR UPDATING THEN
INSERT INTO hist_emp (source_rowid, source_date, action)
VALUES (:new.rowid, SYSDATE, v_action);
END IF;
EXCEPTION
WHEN OTHERS THEN
--Code to Log
-- <some exception handling should be placed here >
END;
這當我刪除的行,但我不知道發生了一般。 任何想到爲什麼會發生這種情況?該代碼看起來不錯,我...
哇,這很奇怪。代碼看起來不錯。 「其他」條款中是否存在任何代碼?但願如此。你可以展示它嗎? – OldProgrammer
'hist_emp'上是否有觸發器? –
'hist_emp'上沒有觸發器。在OTHERS部分有一個最終在exception_logging表中插入的泛型過程調用。 –