【发布时间】:2014-04-19 22:53:28
【问题描述】:
我正在尝试运行此代码为我的审计表创建触发器,但我收到错误消息:
PLS-00103: Encountered the symbol "TRG_AUDIT_EMP" when expecting one of the following: if
我该如何解决这个问题?
create or replace TRIGGER trg_audit_emp
AFTER INSERT OR DELETE OR UPDATE ON emp_mb
FOR EACH ROW
DECLARE
v_trg_action VARCHAR2(6);
BEGIN
IF updating
THEN
v_trg_action := 'UPDATE';
ELSE IF deleting
THEN
v_trg_action := 'DELETE';
ELSE IF inserting
THEN
v_trg_action := 'INSERT';
ELSE
v_trg_action := 'NULL';
END IF;
IF v_trg_action IN ('DELETE','UPDATE') THEN
INSERT INTO emp_audit
( emp_id, emp_forename, emp_surname, username, AUDIT_USER, AUDIT_DATE, AUDIT_ACTION)
VALUES
(:OLD.emp_ID, :OLD.emp_forename, :OLD.emp_surname, :old.username, UPPER(v('APP_USER')), SYSDATE, v_trg_action);
ELSE
INSERT INTO emp_audit
( emp_id, emp_forename, emp_surname, username, AUDIT_USER, AUDIT_DATE, AUDIT_ACTION)
VALUES
(:NEW.emp_id, :NEW.emp_forename, :NEW.emp_surname, NEW.username, UPPER(v('APP_USER')), SYSDATE, v_trg_action);
END IF;
END trg_audit_emp ;
【问题讨论】: