pg_dbms_lock
为PG添加对 Oracle DBMS_LOCK 的完整兼容性支持
仓库
HexaCluster/pg_dbms_lock
https://github.com/HexaCluster/pg_dbms_lock
源码
pg_dbms_lock-2.0.tar.gz
pg_dbms_lock-2.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_dbms_lock | 2.0 | SIM | PostgreSQL | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 9250 | pg_dbms_lock | 否 | 否 | 否 | 是 | 否 | 否 | dbms_lock |
| 相关扩展 | pg_background pg_dbms_job pg_dbms_metadata pg_utl_smtp pg_dbms_errlog orafce pg_cron pgagent pg_task |
|---|
Requires pg_background >= 2.0; the PIGSTY DEB carries a downstream pg_background v2 API compatibility patch.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | MIXED | 2.0 | 1817161514 | pg_dbms_lock | pg_background |
| RPM | PGDG | 2.0 | 1817161514 | pg_dbms_lock_$v | pg_background_$v |
| DEB | PIGSTY | 2.0 | 1817161514 | postgresql-$v-pg-dbms-lock | postgresql-$v-pg-background |
构建
您可以使用 pig build 命令构建 pg_dbms_lock 扩展的 DEB 包:
BASH
安装
您可以直接安装 pg_dbms_lock 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
使用 PostgreSQL 咨询锁模拟 Oracle DBMS_LOCK 行为。
启用
SQL
ALLOCATE_UNIQUE
为命名锁分配唯一锁标识符:
SQL
REQUEST
以指定模式请求锁(Exclusive=6,Shared=4):
SQL
返回值:0=成功,1=超时,3=参数错误,4=已持有锁,5=非法句柄。
RELEASE
显式释放之前获取的锁:
SQL
SLEEP
暂停会话指定时长:
SQL
完整示例
SQL