pg_dbms_metadata
添加 Oracle DBMS_METADATA 兼容性支持的扩展
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_dbms_metadata | 1.0.0 | SIM | PostgreSQL | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 9240 | pg_dbms_metadata | 否 | 是 | 否 | 是 | 否 | 否 | dbms_metadata |
| 相关扩展 | orafce pgtt pg_dbms_lock pg_dbms_job oracle_fdw session_variable pg_statement_rollback ddlx |
|---|
pgdg missing el8.aarch64.pg15
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 1.0.0 | 1817161514 | pg_dbms_metadata | - |
| RPM | PGDG | 1.0.0 | 1817161514 | pg_dbms_metadata_$v | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PGDG 1.0.0 el8.x86_64.pg18 : pg_dbms_metadata_18 pg_dbms_metadata_18-1.0.0-2PGDG.rhel8.noarch.rpm
| PGDG 1.0.0 el8.x86_64.pg17 : pg_dbms_metadata_17 pg_dbms_metadata_17-1.0.0-1PGDG.rhel8.noarch.rpm
| PGDG 1.0.0 el8.x86_64.pg16 : pg_dbms_metadata_16 pg_dbms_metadata_16-1.0.0-1PGDG.rhel8.noarch.rpm
| PGDG 1.0.0 el8.x86_64.pg15 : pg_dbms_metadata_15 pg_dbms_metadata_15-1.0.0-1PGDG.rhel8.noarch.rpm
| PGDG 1.0.0 el8.x86_64.pg14 : pg_dbms_metadata_14 pg_dbms_metadata_14-1.0.0-1PGDG.rhel8.noarch.rpm
|
| el8.aarch64 | PGDG 1.0.0 el8.aarch64.pg18 : pg_dbms_metadata_18 pg_dbms_metadata_18-1.0.0-2PGDG.rhel8.noarch.rpm
| PGDG 1.0.0 el8.aarch64.pg17 : pg_dbms_metadata_17 pg_dbms_metadata_17-1.0.0-1PGDG.rhel8.noarch.rpm
| PGDG 1.0.0 el8.aarch64.pg16 : pg_dbms_metadata_16 pg_dbms_metadata_16-1.0.0-1PGDG.rhel8.noarch.rpm
| PGDG MISS | PGDG 1.0.0 el8.aarch64.pg14 : pg_dbms_metadata_14 pg_dbms_metadata_14-1.0.0-1PGDG.rhel8.noarch.rpm
|
| el9.x86_64 | PGDG 1.0.0 el9.x86_64.pg18 : pg_dbms_metadata_18 pg_dbms_metadata_18-1.0.0-2PGDG.rhel9.noarch.rpm
| PGDG 1.0.0 el9.x86_64.pg17 : pg_dbms_metadata_17 pg_dbms_metadata_17-1.0.0-1PGDG.rhel9.noarch.rpm
| PGDG 1.0.0 el9.x86_64.pg16 : pg_dbms_metadata_16 pg_dbms_metadata_16-1.0.0-1PGDG.rhel9.noarch.rpm
| PGDG 1.0.0 el9.x86_64.pg15 : pg_dbms_metadata_15 pg_dbms_metadata_15-1.0.0-1PGDG.rhel9.noarch.rpm
| PGDG 1.0.0 el9.x86_64.pg14 : pg_dbms_metadata_14 pg_dbms_metadata_14-1.0.0-1PGDG.rhel9.noarch.rpm
|
| el9.aarch64 | PGDG 1.0.0 el9.aarch64.pg18 : pg_dbms_metadata_18 pg_dbms_metadata_18-1.0.0-2PGDG.rhel9.noarch.rpm
| PGDG 1.0.0 el9.aarch64.pg17 : pg_dbms_metadata_17 pg_dbms_metadata_17-1.0.0-1PGDG.rhel9.noarch.rpm
| PGDG 1.0.0 el9.aarch64.pg16 : pg_dbms_metadata_16 pg_dbms_metadata_16-1.0.0-1PGDG.rhel9.noarch.rpm
| PGDG 1.0.0 el9.aarch64.pg15 : pg_dbms_metadata_15 pg_dbms_metadata_15-1.0.0-1PGDG.rhel9.noarch.rpm
| PGDG 1.0.0 el9.aarch64.pg14 : pg_dbms_metadata_14 pg_dbms_metadata_14-1.0.0-1PGDG.rhel9.noarch.rpm
|
| el10.x86_64 | PGDG 1.0.0 el10.x86_64.pg18 : pg_dbms_metadata_18 pg_dbms_metadata_18-1.0.0-2PGDG.rhel10.noarch.rpm
| PGDG 1.0.0 el10.x86_64.pg17 : pg_dbms_metadata_17 pg_dbms_metadata_17-1.0.0-2PGDG.rhel10.noarch.rpm
| PGDG 1.0.0 el10.x86_64.pg16 : pg_dbms_metadata_16 pg_dbms_metadata_16-1.0.0-2PGDG.rhel10.noarch.rpm
| PGDG 1.0.0 el10.x86_64.pg15 : pg_dbms_metadata_15 pg_dbms_metadata_15-1.0.0-2PGDG.rhel10.noarch.rpm
| PGDG 1.0.0 el10.x86_64.pg14 : pg_dbms_metadata_14 pg_dbms_metadata_14-1.0.0-2PGDG.rhel10.noarch.rpm
|
| el10.aarch64 | PGDG 1.0.0 el10.aarch64.pg18 : pg_dbms_metadata_18 pg_dbms_metadata_18-1.0.0-2PGDG.rhel10.noarch.rpm
| PGDG 1.0.0 el10.aarch64.pg17 : pg_dbms_metadata_17 pg_dbms_metadata_17-1.0.0-2PGDG.rhel10.noarch.rpm
| PGDG 1.0.0 el10.aarch64.pg16 : pg_dbms_metadata_16 pg_dbms_metadata_16-1.0.0-2PGDG.rhel10.noarch.rpm
| PGDG 1.0.0 el10.aarch64.pg15 : pg_dbms_metadata_15 pg_dbms_metadata_15-1.0.0-2PGDG.rhel10.noarch.rpm
| PGDG 1.0.0 el10.aarch64.pg14 : pg_dbms_metadata_14 pg_dbms_metadata_14-1.0.0-2PGDG.rhel10.noarch.rpm
|
| d12.x86_64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| d12.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| d13.x86_64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| d13.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| u22.x86_64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| u22.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| u24.x86_64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| u24.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
安装
您可以直接安装 pg_dbms_metadata 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
pig repo add pgdg -u # 添加 PGDG 仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pg_dbms_metadata; # 当前活跃 PG 版本安装
pig ext install -y pg_dbms_metadata -v 18 # PG 18
pig ext install -y pg_dbms_metadata -v 17 # PG 17
pig ext install -y pg_dbms_metadata -v 16 # PG 16
pig ext install -y pg_dbms_metadata -v 15 # PG 15
pig ext install -y pg_dbms_metadata -v 14 # PG 14
dnf install -y pg_dbms_metadata_18 # PG 18
dnf install -y pg_dbms_metadata_17 # PG 17
dnf install -y pg_dbms_metadata_16 # PG 16
dnf install -y pg_dbms_metadata_15 # PG 15
dnf install -y pg_dbms_metadata_14 # PG 14
创建扩展:
CREATE EXTENSION pg_dbms_metadata;
用法
pg_dbms_metadata: 为 PostgreSQL 添加 Oracle DBMS_METADATA 兼容性的扩展
启用
CREATE EXTENSION pg_dbms_metadata;
GET_DDL
提取数据库对象的 DDL。支持的类型:TABLE、VIEW、SEQUENCE、PROCEDURE、FUNCTION、TRIGGER、INDEX、CONSTRAINT、CHECK_CONSTRAINT、REF_CONSTRAINT、TYPE、ENUM。
SELECT dbms_metadata.get_ddl('TABLE', 'employees', 'public');
SELECT dbms_metadata.get_ddl('VIEW', 'active_users', 'myschema');
SELECT dbms_metadata.get_ddl('FUNCTION', 'calculate_tax', 'public');
SELECT dbms_metadata.get_ddl('INDEX', 'idx_name', 'public');
-- 模式可选;省略时使用 search_path
SELECT dbms_metadata.get_ddl('SEQUENCE', 'my_seq');
GET_DEPENDENT_DDL
提取基础对象的所有指定类型依赖对象的 DDL。支持:SEQUENCE、TRIGGER、CONSTRAINT、REF_CONSTRAINT、INDEX、ENUM。
SELECT dbms_metadata.get_dependent_ddl('CONSTRAINT', 'employees', 'public');
SELECT dbms_metadata.get_dependent_ddl('INDEX', 'orders', 'sales');
SELECT dbms_metadata.get_dependent_ddl('TRIGGER', 'accounts');
GET_GRANTED_DDL
提取用于重建已授予权限和角色的 SQL 语句。支持:ROLE_GRANT。
SELECT dbms_metadata.get_granted_ddl('ROLE_GRANT', 'user_test');
SET_TRANSFORM_PARAM
通过会话级转换参数自定义 DDL 输出:
-- 在每条 DDL 语句后追加 SQL 终结符(;)
CALL dbms_metadata.set_transform_param('SQLTERMINATOR', true);
-- 从 TABLE DDL 中排除约束
CALL dbms_metadata.set_transform_param('CONSTRAINTS', false);
-- 从 TABLE DDL 中排除外键
CALL dbms_metadata.set_transform_param('REF_CONSTRAINTS', false);
-- 排除分区子句
CALL dbms_metadata.set_transform_param('PARTITIONING', false);
-- 排除存储参数
CALL dbms_metadata.set_transform_param('STORAGE', false);
-- 将所有参数重置为默认值
CALL dbms_metadata.set_transform_param('DEFAULT', true);