1.sql
錯誤描述async
ORACLE-04082:NEW 或OLD引用不容許在表級觸發器中spa
解決方案:code
new和:old只能用於行級觸發器,不能用於語句級觸發器,只須要加FOR EACH ROW這一句話ci
create or replace trigger drs_asynchronous_trig before insert on drs_asynchronous FOR EACH ROW declare -- local variables here v_trigger_user varchar2(100); v_trigger_date date; v_sqlcode varchar2(6); v_sqlerrm varchar2(200); v_error_comment varchar2(300); begin v_error_comment := 'before get_user'; v_trigger_user := user; v_trigger_date := sysdate; :new.FCU := v_trigger_user; :new.FCD := v_trigger_date; :new.LCU := v_trigger_user; :new.LCD := v_trigger_date; SELECT DRS_ASYNCHRONOUS_ID_SEQ.NEXTVAL INTO :NEW.PK_SERIAL# FROM DUAL; exception when others then v_sqlcode := sqlcode; v_sqlerrm := substr(sqlerrm, 1, 200);get INSERT INTO tr_error_log (error_no, error_message, trigger_name, trigger_user, trigger_date, error_comment ) VALUES (v_sqlcode, v_sqlerrm, 'drs_asynchronous_trig', v_trigger_user, v_trigger_date, v_error_comment);io end drs_asynchronous_trig;table |
2.簡歷觸發器權限不足,須要一system的dba身份進去,進行修改賦值date
conn / as sysdba;
grant create any trigger to kl;
若是怕麻煩,直接
grant dba to kl; |