我收到第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;
/
答案 0 :(得分:0)
您在参数名称commit
中输错了release_on_commmit
。删除三个m
中的一个。
在我的系统(Oracle 11g XE)上,我也收到错误PLS-00201: identifier 'DBMS_LOCK' must be declared
。要解决此问题,我需要将EXECUTE
DBMS_LOCK
授予我创建触发器的用户。