DM dbms_metadata.get_ddl方法的使用总结
DBMS_METADATA包GET_DDL函数用于获取数据库对表、视图、索引、全文索引、存储过程、函数、包、序列、同义词、约束、触发器等的DDL语句。
可以通过DM管理工具轻松获得所需对象的SQL定义语句,在一些无法使用DM管理工具的地方,可以使用DM的disql工具获得对象的SQL定义语句。以下内容侧重于在DMdisql工具中获得对象的SQL定义语句。
特别提示MPP环境下不支持使用DBMS_METADATA包。
1、DBMS_METADATA包GET_DDL方法介绍
获取指定对象元数据中的DDL语句。
1.1 语法定义
FUNCTION GET_DDL(
OBJECT_TYPE IN VARCHAR(30),
NAME IN VARCHAR(128),
SCHNAME
1.2 参数详解
l OBJECT_TYPE
对象类型。包括表、视图、物化视图、索引、全文索引、存储过程、函数、包、目录等,详情请见OPEN参数详解。其中,OBJECT_TYPE只能为大写。
OBJECT_TYPE的类型包括:
类型名称 | 含义 | 说明 |
CLASS | 类类型 | 默认返回类头类体 |
CLASS_HEAD | 类型名 | 无 |
CLASS_BODY | 类型体 | 无 |
COL_STATISTICS | 列统计 | 无 |
COMMENT | 注释 | 无 |
CONSTRAINT | 约束 | 不包括聚集主键和非空约束 |
CONTEXT | 上下文 | 无 |
CONTEXT_INDEX | 全文索引 | 无 |
DATABASE_EXPORT | 数据库下的所有对象 | 库级导出 |
DB_LINK | 数据库链接 | 因此类对象具有所有者,因此将其视为模式级对象。 对于公有连接,它们的所有者是PUBLIC;对于私有链接,它们的创建者就是它们的所有者 |
DIRECTORY | 目录 | 无 |
DOMAIN | 域 | 无 |
FUNCTION | 存储函数 | 无 |
INDEX | 索引 | 不包括系统内部定义的索引 |
INDEX_STATISTICS | 索引统计 | 无 |
JOB | 任务 | 无 |
OBJECT_GRANT | 对象权限 | 无 |
PACKAGE | 包 | 默认返回包头包体 |
PKG_SPEC | 包头 | 无 |
PKG_BODY | 包体 | 无 |
POLICY | 策略 | 无 |
PROCEDURE | 存储过程 | 无 |
ROLE | 角色 | 无 |
ROLE_GRANT | 角色权限 | 无 |
SCHEMA_EXPORT | 模式下的所有对象 | 模式级导出 |
SEQUENCE | 序列 | 无 |
SYNONYM | 同义词 | 私有同义词为模式对象,公有同义词为命名对象 |
SYSTEM_GRANT | 系统权限 | 无 |
TABLE | 表 | 无 |
TABLE_STATISTICS | 表统计信息 | 无 |
TABLE_EXPORT | 表及与其相关的元数据 | 表级导出 |
TABLESPACE | 表空间 | 无 |
TRIGGER | 触发器 | 无 |
USER | 用户 | 无 |
VIEW | 视图 | 无 |
TYPE | 用户自定义类型 | 无 |
MATERIALIZED_VIEW | 物化视图 | 无 |
MATERIALIZED_VIEW_LOG | 物化视图日志 | 无 |