1. 程式人生 > >Oracle的DBMS_METADATA.GET_DDL()函式詳解

Oracle的DBMS_METADATA.GET_DDL()函式詳解

Oracle中獲取物件的DDL語句,可以通過DBMS_METADATA.GET_DDL()查詢到該物件的定義語句,具體SQL語句如下:

SELECT DBMS_METADATA.GET_DDL(OBJECT_TYPE, NAME, SCHEMA) FROM DUAL;
例子: 獲取表的ddl語句,表名為EXAMPLE
SELECT DBMS_METADATA.GET_DDL('TABLE', 'EXAMPLE') FROM DUAL;

上述傳入的引數含義如下:
· OBJECT_TYPE:物件的型別,如TABLEINDEXFUNTION等;
· NAME: 物件名;
· SCHEMA:物件所在schema,預設為當前使用者所在schema;
此外可選引數還有:
VERSION:物件原資料的版本
MODEL:原資料的型別預設為Oracle
TRANSFORM:XSL-T transform. to be applied.
該函式返回的是CLOB資料。

OBJECT_TYPE的型別如下:

型別名 型別中文名 說明
AQ_QUEUE 佇列 依賴於表
AQ_QUEUE_TABLE 隊列表 依賴於表
AQ_TRANSFORM
ASSOCIATION
AUDIT SQL語句審計
AUDIT_OBJ
CLUSTER
COMMENT 註釋
CONSTRAINT 約束 不包括:索引組織表(IOT)的主鍵約束、列的非空約束、某些擁有REF列的表的REF SCOPE和WITH ROWID約束
CONTEXT
DATABASE_EXPORT
DB_LINK 遠端連線定義
DEFAULT_ROLE 預設角色 通過ALTER賦予使用者
DIMENSION
DIRECTORY 目錄
FGA_POLICY 細粒度審計策略
FUNCTION 函式
INDEX_STATISTICS
INDEX 索引
INDEXTYPE
JAVA_SOURCE
JOB 定時任務
LIBRARY
MATERIALIZED_VIEW 物化檢視
MATERIALIZED_VIEW_LOG 物化檢視日誌
OBJECT_GRANT
OPERATOR
PACKAGE
PACKAGE_SPEC
PACKAGE_BODY 包體
PROCEDURE 儲存過程
PROFILE 配置檔案
PROXY 代理認證 通過ALTER賦予使用者
REF_CONSTRAINT 外來鍵約束
REFRESH_GROUP
RESOURCE_COST
RLS_CONTEXT
RLS_GROUP
RLS_POLICY
RMGR_CONSUMER_GROUP
RMGR_INTITIAL_CONSUMER_GROUP
RMGR_PLAN
RMGR_PLAN_DIRECTIVE
ROLE 角色
ROLE_GRANT
ROLLBACK_SEGMENT
SCHEMA_EXPORT
SEQUENCE 序列
SYNONYM 同義詞
SYSTEM_GRANT 系統授權
TABLE
TABLE_DATA
TABLE_EXPORT
TABLE_STATISTICS
TABLESPACE 表空間
TABLESPACE_QUOTA
TRANSPORTABLE_EXPORT
TRIGGER 觸發器
TRUSTED_DB_LINK
TYPE 型別
TYPE_SPEC
TYPE_BODY
USER 使用者
VIEW 檢視
XMLSCHEMA
XS_USER
XS_ROLE
XS_ROLESET
XS_ROLE_GRANT
XS_SECURITY_CLASS
XS_DATA_SECURITY
XS_ACL
XS_ACL_PARAM
XS_NAMESPACE