CREATE OR REPLACE TRIGGER test_triggerAFTER INSERT OR UPDATE OF sal OR DELETE ON empFOR EACH ROWBEGIN CASE WHEN INSERTING THEN --当事件为INSERT时,INSERTING为TRUE /* :NEW关键字可以获取新记录的数据,它只能用于行级触发器 */ DBMS_OUTPUT.PUT_LINE('INSERT INTO EMP VALUES('||:NEW.empno||','||:NEW.ename||','||:NEW.job||','||:NEW.mgr||','||:NEW.hiredate||','||:NEW.sal||','||:NEW.comm||','||:NEW.deptno||')'); WHEN UPDATING THEN --当事件为UPDATE时,UPDATING为TRUE DBMS_OUTPUT.PUT_LINE('UPDATING emp which empno='||:OLD.empno||'to sal:'||:NEW.sal);--:OLD关键字可以获取旧记录的数据,它只能用于行级触发器 WHEN DELETING THEN --当事件为DELETE时,DELETING为TRUE DBMS_OUTPUT.PUT_LINE('DELETING emp which empno='||:OLD.empno);--:OLD关键字可以获取旧记录的数据,它只能用于行级触发器 ELSE NULL; END CASE;EXCEPTION WHEN DUP_VAL_ON_INDEX THEN NULL; WHEN OTHERS THEN RAISE_APPLICATION_ERROR(SQLCODE,SQLERRM);END test_trigger;