Usa dbms_lock.allocate_unique insieme a dbms_lock.request. Le note sull'utilizzo dice:
La prima sessione a chiamare ALLOCATE_UNIQUE con un nuovo nome di blocco provoca la generazione e l'archiviazione di un ID blocco univoco nella tabella dbms_lock_allocated. Le chiamate successive (di solito da altre sessioni) restituiscono l'ID blocco generato in precedenza.
Penso che questo potrebbe essere quello che stai cercando.