create or replace procedure p is lockhandle varchar2(200); ln number; begin dbms_lock.allocate_unique('MyLock', lockhandle); ln := dbms_lock.request(lockhandle,timeout => 0); if ln not in (0, 4) then dbms_output.put_line('Already run...'); return; end if; dbms_lock.sleep(10); ln := dbms_lock.release(lockhandle); exception when others then ln := dbms_lock.release(lockhandle); raise; end; |
|