编译指示中的错误exception_init()Oracle 10g中忽略的语句

时间:2016-07-15 14:22:36

标签: oracle plsql

我收到第7行的错误(参见下面的代码),由10g指定为:

  

"Statement ignored"

谁能告诉我我做错了什么?

create or replace trigger demo1_bifer
    BEFORE INSERT ON demo1 
    FOR EACH ROW 
     declare
         lock_id number;
         resource_busy exception;
         pragma EXCEPTION_INIT(resource_busy,-54);
     begin
         lock_id := dbms_utility.get_hash_value(to_char(:new.x),0,1024);
         if (dbms_lock.request( id => lock_id,lockmode => dbms_lock.x_mode, timeout => 0, release_on_commmit => TRUE) not in (0,4))
         then raise resource_busy;
         end if;
     end;
    /

1 个答案:

答案 0 :(得分:0)

您在参数名称commit中输错了release_on_commmit。删除三个m中的一个。

在我的系统(Oracle 11g XE)上,我也收到错误PLS-00201: identifier 'DBMS_LOCK' must be declared。要解决此问题,我需要将EXECUTE DBMS_LOCK授予我创建触发器的用户。