ALLOCATE_UNIQUE¶
此接口为锁分配唯一的锁标识,用户程序可以通过锁名称得到锁句柄。
对于某个lockname,若第一次调用ALLOCATE_UNIQUE将为该锁生成唯一的锁标识,并将其存储在dbms_lock_allocated表中。对于同一锁名,再次调用ALLOCATE_UNIQUE将返回先前生成的锁ID。
语法¶
DBMS_LOCK.ALLOCATE_UNIQUE (
lockname IN VARCHAR2,
lockhandle OUT VARCHAR2,
expiration_secs IN INTEGER DEFAULT 864000);
结构¶
| 参数 | 模式 | 说明 |
|---|---|---|
| lockname | IN | 锁名称 |
| lockhandle | OUT | 返回生成的锁ID的句柄。可以在REQUEST,CONVERT和RELEASE调用中使用此句柄。 |
| expiration_secs | IN | 在对给定的锁执行了最后一次ALLOCATE_UNIQUE之后,超出expiration_secs秒,才允许从DBMS_LOCK_ALLOCATED表中删除该锁。 默认的保留时间为10天。 |
注解
lockhandle的大小不能小于varchar2(23)。
示例¶
DECLARE
V_LOCK_HOLDER VARCHAR2(128);
BEGIN
DBMS_LOCK.ALLOCATE_UNIQUE('lockA', V_LOCK_HOLDER, 3600);
DBMS_OUTPUT.PUT_LINE(V_LOCK_HOLDER);
END;
/