Použijte dbms_lock.allocate_unique spolu s dbms_lock.request. Poznámky k použití říká:
První relace, která zavolá ALLOCATE_UNIQUE s novým názvem zámku, způsobí, že se vygeneruje jedinečné ID zámku a uloží se do tabulky dbms_lock_allocated. Následná volání (obvykle jinými relacemi) vrátí dříve vygenerované ID zámku.
Myslím, že by to mohlo být to, co hledáte.