Skip to content
pg_dbms_metadata

pg_dbms_metadata

pg_dbms_metadata : Extension to add Oracle DBMS_METADATA compatibility to PostgreSQL

Overview

ID Extension Package Version Category License Language
9240
pg_dbms_metadata
pg_dbms_metadata
1.0.0
SIM
PostgreSQL
SQL
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
----d--
No
No
No
Yes
no
no
Relationships
Schemas dbms_metadata
See Also
orafce
pgtt
pg_dbms_lock
pg_dbms_job
oracle_fdw
session_variable
pg_statement_rollback
ddlx

PGDG RPM lacks PG15 on EL8 aarch64; PIGSTY DEB covers PG14-18 on amd64 and arm64.

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
MIXED
1.0.0
18
17
16
15
14
pg_dbms_metadata -
RPM
PGDG
1.0.0
18
17
16
15
14
pg_dbms_metadata_$v -
DEB
PIGSTY
1.0.0
18
17
16
15
14
postgresql-$v-pg-dbms-metadata -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
el8.aarch64
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PIGSTY 1.0.0
PGDG 1.0.0
el9.x86_64
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
el9.aarch64
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
el10.x86_64
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
el10.aarch64
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
PGDG 1.0.0
d12.x86_64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
d12.aarch64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
d13.x86_64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
d13.aarch64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
u22.x86_64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
u22.aarch64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
u24.x86_64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
u24.aarch64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
u26.x86_64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
u26.aarch64
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
PIGSTY 1.0.0
Package Version OS ORG SIZE File URL
pg_dbms_metadata_18 1.0.0 el8.x86_64 pgdg 17.8 KiB pg_dbms_metadata_18-1.0.0-2PGDG.rhel8.noarch.rpm
pg_dbms_metadata_18 1.0.0 el8.aarch64 pgdg 17.7 KiB pg_dbms_metadata_18-1.0.0-2PGDG.rhel8.noarch.rpm
pg_dbms_metadata_18 1.0.0 el9.x86_64 pgdg 17.4 KiB pg_dbms_metadata_18-1.0.0-2PGDG.rhel9.8.noarch.rpm
pg_dbms_metadata_18 1.0.0 el9.x86_64 pgdg 17.4 KiB pg_dbms_metadata_18-1.0.0-2PGDG.rhel9.noarch.rpm
pg_dbms_metadata_18 1.0.0 el9.aarch64 pgdg 17.3 KiB pg_dbms_metadata_18-1.0.0-2PGDG.rhel9.8.noarch.rpm
pg_dbms_metadata_18 1.0.0 el9.aarch64 pgdg 17.3 KiB pg_dbms_metadata_18-1.0.0-2PGDG.rhel9.noarch.rpm
pg_dbms_metadata_18 1.0.0 el10.x86_64 pgdg 17.5 KiB pg_dbms_metadata_18-1.0.0-2PGDG.rhel10.2.noarch.rpm
pg_dbms_metadata_18 1.0.0 el10.x86_64 pgdg 17.9 KiB pg_dbms_metadata_18-1.0.0-2PGDG.rhel10.noarch.rpm
pg_dbms_metadata_18 1.0.0 el10.aarch64 pgdg 17.5 KiB pg_dbms_metadata_18-1.0.0-2PGDG.rhel10.2.noarch.rpm
pg_dbms_metadata_18 1.0.0 el10.aarch64 pgdg 17.8 KiB pg_dbms_metadata_18-1.0.0-2PGDG.rhel10.noarch.rpm
postgresql-18-pg-dbms-metadata 1.0.0 d12.x86_64 pigsty 13.2 KiB postgresql-18-pg-dbms-metadata_1.0.0-1PIGSTY~bookworm_all.deb
postgresql-18-pg-dbms-metadata 1.0.0 d12.aarch64 pigsty 13.2 KiB postgresql-18-pg-dbms-metadata_1.0.0-1PIGSTY~bookworm_all.deb
postgresql-18-pg-dbms-metadata 1.0.0 d13.x86_64 pigsty 13.2 KiB postgresql-18-pg-dbms-metadata_1.0.0-1PIGSTY~trixie_all.deb
postgresql-18-pg-dbms-metadata 1.0.0 d13.aarch64 pigsty 13.2 KiB postgresql-18-pg-dbms-metadata_1.0.0-1PIGSTY~trixie_all.deb
postgresql-18-pg-dbms-metadata 1.0.0 u22.x86_64 pigsty 13.5 KiB postgresql-18-pg-dbms-metadata_1.0.0-1PIGSTY~jammy_all.deb
postgresql-18-pg-dbms-metadata 1.0.0 u22.aarch64 pigsty 13.5 KiB postgresql-18-pg-dbms-metadata_1.0.0-1PIGSTY~jammy_all.deb
postgresql-18-pg-dbms-metadata 1.0.0 u24.x86_64 pigsty 13.5 KiB postgresql-18-pg-dbms-metadata_1.0.0-1PIGSTY~noble_all.deb
postgresql-18-pg-dbms-metadata 1.0.0 u24.aarch64 pigsty 13.5 KiB postgresql-18-pg-dbms-metadata_1.0.0-1PIGSTY~noble_all.deb
postgresql-18-pg-dbms-metadata 1.0.0 u26.x86_64 pigsty 13.5 KiB postgresql-18-pg-dbms-metadata_1.0.0-1PIGSTY~resolute_all.deb
postgresql-18-pg-dbms-metadata 1.0.0 u26.aarch64 pigsty 13.5 KiB postgresql-18-pg-dbms-metadata_1.0.0-1PIGSTY~resolute_all.deb

Source

pig build pkg pg_dbms_metadata;		# build deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install pg_dbms_metadata;		# install via package name, for the active PG version

pig install pg_dbms_metadata -v 18;   # install for PG 18
pig install pg_dbms_metadata -v 17;   # install for PG 17
pig install pg_dbms_metadata -v 16;   # install for PG 16
pig install pg_dbms_metadata -v 15;   # install for PG 15
pig install pg_dbms_metadata -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION pg_dbms_metadata;

Usage

pg_dbms_metadata: Extension to add Oracle DBMS_METADATA compatibility to PostgreSQL

Enabling

CREATE EXTENSION pg_dbms_metadata;

GET_DDL

Extract DDL of database objects. Supported types: 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');

-- Schema is optional; uses search_path when omitted
SELECT dbms_metadata.get_ddl('SEQUENCE', 'my_seq');

GET_DEPENDENT_DDL

Extract DDL of all dependent objects of a specified type for a base object. Supported: 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

Extract SQL statements to recreate granted privileges and roles. Supported: ROLE_GRANT.

SELECT dbms_metadata.get_granted_ddl('ROLE_GRANT', 'user_test');

SET_TRANSFORM_PARAM

Customize DDL output with session-level transform parameters:

-- Append SQL terminator (;) to each DDL statement
CALL dbms_metadata.set_transform_param('SQLTERMINATOR', true);

-- Exclude constraints from TABLE DDL
CALL dbms_metadata.set_transform_param('CONSTRAINTS', false);

-- Exclude foreign keys from TABLE DDL
CALL dbms_metadata.set_transform_param('REF_CONSTRAINTS', false);

-- Exclude partitioning clauses
CALL dbms_metadata.set_transform_param('PARTITIONING', false);

-- Exclude storage parameters
CALL dbms_metadata.set_transform_param('STORAGE', false);

-- Reset all params to defaults
CALL dbms_metadata.set_transform_param('DEFAULT', true);
Last updated on