编译错误......即使代码是正确的

时间:2017-09-07 18:29:19

标签: oracle plsql oracle11g

create or replace trigger t2
    after insert or delete or update
    on emp_salary_details
    for each row
begin
    if inserting then
        insert into emp_table_audit
        values
        ( :new.emp_id
        , null
        , user
        , systimestamp
        , ‘INSERTION’ );

    elsif deleting then
        insert into emp_table_audit
        values
        ( null
        , :old.emp_id
        , user
        , systimestamp
        , ‘DELETION’ );

    elsif updating then
        insert into emp_table_audit
        values
        ( :new.emp_id
        , :old.emp_id
        , user
        , systimestamp
        , ‘UPDATION’ );
    end if;
end;

1 个答案:

答案 0 :(得分:3)

问题似乎出现在"幻想"您在所有操作中使用的单引号,例如

‘INSERTION’

如果你看看它到底是什么(只是前两个字符):

select dump('‘I') from dual;

结果显示

Typ=96 Len=4: 226,128,152,73
  • 226,128,152表示"花式"单引号
  • 73是大写字母" I"

用"普通"替换它后。单引号,一切都应该没问题。实际上,看看这个问题有多久了,我希望你已经解决了这个问题,但是一些调试技术可能会造成很大的伤害。