| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Lock timeout on oracle 8i
Hi all,
I want to convert my t-sql to pl/sql, especially related to lock timeout, do i apply with the correct programming on oracle?
==> on sqlserver:
declare @ename varchar(10)
set lock_timeout 1500
select @ename = ename
from emp (rowlock,updlock)
where empno=7900
if @@error != 0 goto errhandler
print 'ename: ' + @ename
return
errhandler:
print 'Locking record(s) failed ...'
return
==> on oracle:
declare
i number(3,0);
v_ename varchar2(10);
busy exception;
pragma exception_init(busy,-54);
begin
i := 1;
loop
begin
select ename into v_ename
from emp
where empno=7900 for update nowait;
dbms_output.put_line('ename: ' || v_ename);
exception
when busy then
if i < 3 then
dbms_lock.sleep(0.5);
else
dbms_output.put_line('Locking record(s) failed ...');
exit;
end if;
end;
i := i + 1;
Thanks in advance,
Rudy Susanto Received on Thu May 23 2002 - 23:10:05 CDT
![]() |
![]() |