Utilice dbms_lock.allocate_unique junto con dbms_lock.request. Las notas de uso dice:
La primera sesión que llama a ALLOCATE_UNIQUE con un nuevo nombre de bloqueo hace que se genere y almacene una ID de bloqueo única en la tabla dbms_lock_allocated. Las llamadas posteriores (normalmente por otras sesiones) devuelven la ID de bloqueo generada previamente.
Creo que esto podría ser lo que buscas.