tags:

views:

98

answers:

1

I need the ability to use custom locks at a session level (outside the scope of a transaction) in oracle.

In MSSQL I am using sp_getapplock, sp_releaseapplock.

How can I achieve the same functionality in Oracle?

+3  A: 

DBMS_LOCK Package

This will do what you want:

dbms_lock.allocate_unique('control_lock', v_lockhandle);
v_result := dbms_lock.request(v_lockhandle, dbms_lock.ss_mode);
...
v_result := dbms_lock.release(v_lockhandle);

http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_lock.htm

Mark Harrison
Can I do that in a single command (idbcommand) with the oracle, or do I have to write it in plsql, in my own package?
Noam
Depending on your programming API, you should be able to execute a block of PL/SQL with exec_func('begin stuff; end').
Mark Harrison