CREATE OR REPLACE PACKAGE PCK_LOCK AS v_lockhandle varchar2(100); procedure request(p_lock_name varchar2); procedure release; END PCK_LOCK; / CREATE OR REPLACE PACKAGE BODY PCK_LOCK AS procedure request(p_lock_name varchar2) AS v_ret integer; BEGIN DBMS_LOCK.ALLOCATE_UNIQUE ( p_lock_name, v_lockhandle ); v_ret := DBMS_LOCK.REQUEST( lockhandle => v_lockhandle, timeout => 1, release_on_commit => true); dbms_output.put_line(v_ret); END request; procedure release AS v_ret integer; BEGIN v_ret := DBMS_LOCK.RELEASE( lockhandle => v_lockhandle ); END release; END PCK_LOCK; /