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; |