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表中插入的泛型过程调用。 –