错误ORA-04079:无效的触发器规范

时间:2017-10-13 03:50:52

标签: plsql oracle11g triggers

是否可以在一个TRIGGER中拥有多个表格?假设我有员工,技能和客户表,我有Eventlogs表来捕获审计。我试图添加Skill_T但是我收到了ORA-04079错误。有任何更正?谢谢!

注意:我正在使用Oracle SQL Developer Oracle11gEE

CREATE OR REPLACE TRIGGER AUDIT_REC
AFTER INSERT OR DELETE OR UPDATE ON EMPLOYEE_T, SKILL_T
FOR EACH ROW
DECLARE
  V_LOGID NUMBER;
    V_USER  VARCHAR(30);
    V_DATE  VARCHAR(30);

BEGIN
  SELECT EVENTLOG_ID_SEQ.NEXTVAL, USER, SYSDATE INTO V_LOGID, V_USER, V_DATE FROM DUAL;
  IF INSERTING THEN
    INSERT INTO EVENTLOGS(Eventlog_id, User_name, Date_done, Action_done)
    VALUES (V_LOGID, V_USER, V_DATE, 'INSERT');
  ELSIF DELETING THEN
    INSERT INTO EVENTLOGS(Eventlog_id, User_name, Date_done, Action_done)
    VALUES (V_LOGID, V_USER, V_DATE, 'DELETE');
  ELSIF UPDATING THEN
    INSERT INTO EVENTLOGS(Eventlog_id, User_name, Date_done, Action_done)
    VALUES (V_LOGID, V_USER, V_DATE, 'UPDATE');
  END IF;
END;
/

1 个答案:

答案 0 :(得分:1)

DML触发器仅与一个表关联(绑定)。它仅在针对该表提交DML时执行。 见http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/triggers.htm#LNPLS99888