为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:8.0 【操作系统】:win11 【CPU】: 【问题描述】*:获取数据库模式下的表详情sql(列,索引,约束,外键,DDL),想问有这样的查询sql吗?
1.使用DBMS_META系统包 DBMS_META系统包兼容Oracle功能,其GET_DDL函数用于获取数据库对表、视图、索引、全文索引、存储过程、函数、包、序列、同义词、约束、触发器等定义的DDL语句。
语法如下:
FUNCTIONG GET_DDL( OBJECT_TYPE IN VARCHAR(30), NAME IN VARCHAR(128), SCHNAME IN VARCHAR(128) DEFAULT NULL RETURN CLOB 参数详解
OBJECT_TYPE:对象类型。包括表、视图、物化视图、索引、全文索引、存储过程、函数、包、目录等,具体可参考《DM8系统包使用手册》。OBJECT_TYPE只能为大写。 NAME:对象名称,区分大小写。 SCHEMA:模式,默认是当前用户模式。 OBJECT_TYPE:对象类型。包括表、视图、物化视图、索引、全文索引、存储过程、函数、包、目录等,具体可参考《DM8系统包使用手册》。OBJECT_TYPE只能为大写。 NAME:对象名称,区分大小写。 SCHEMA:模式,默认是当前用户模式。
①获取表定义语句(可查看表及相关主键、外键、唯一性约束等相关定义) select dbms_metadata.get_ddl(OBJECT_TYPE => 'TABLE',NAME=>upper('EMPLOYEE'),SCHNAME => 'DMHR');
②获取函数/存储过程定义语句(在DISQL窗口下执行时需注意返回的字符串过长会被截断,需设置long属性值较大) 执行如下命令查询DMHR用户下存储过程P_EXPORTDATA的定义语句: select dbms_metadata.get_ddl(OBJECT_TYPE =>'PROCEDURE',NAME=UPPER('P_EXPORTDATA'),SCHNAME='DMHR');
③获取包定义语句 执行如下命令查询SYSJOB用户下系统包DBMS_JOB的定义语句: select dbms_metadata.get_ddl(OBJECT_TYPE => 'PACKAGE', NAME=>upper('DBMS_JOB'), SCHNAME => 'SYSJOB');
1.使用DBMS_META系统包
DBMS_META系统包兼容Oracle功能,其GET_DDL函数用于获取数据库对表、视图、索引、全文索引、存储过程、函数、包、序列、同义词、约束、触发器等定义的DDL语句。
语法如下:
FUNCTIONG GET_DDL(
OBJECT_TYPE IN VARCHAR(30),
NAME IN VARCHAR(128),
SCHNAME IN VARCHAR(128) DEFAULT NULL
RETURN CLOB
参数详解
OBJECT_TYPE:对象类型。包括表、视图、物化视图、索引、全文索引、存储过程、函数、包、目录等,具体可参考《DM8系统包使用手册》。OBJECT_TYPE只能为大写。
NAME:对象名称,区分大小写。
SCHEMA:模式,默认是当前用户模式。
OBJECT_TYPE:对象类型。包括表、视图、物化视图、索引、全文索引、存储过程、函数、包、目录等,具体可参考《DM8系统包使用手册》。OBJECT_TYPE只能为大写。
NAME:对象名称,区分大小写。
SCHEMA:模式,默认是当前用户模式。
①获取表定义语句(可查看表及相关主键、外键、唯一性约束等相关定义)
select dbms_metadata.get_ddl(OBJECT_TYPE => 'TABLE',NAME=>upper('EMPLOYEE'),SCHNAME => 'DMHR');
②获取函数/存储过程定义语句(在DISQL窗口下执行时需注意返回的字符串过长会被截断,需设置long属性值较大)
执行如下命令查询DMHR用户下存储过程P_EXPORTDATA的定义语句:
select dbms_metadata.get_ddl(OBJECT_TYPE =>'PROCEDURE',NAME=UPPER('P_EXPORTDATA'),SCHNAME='DMHR');
③获取包定义语句
执行如下命令查询SYSJOB用户下系统包DBMS_JOB的定义语句:
select dbms_metadata.get_ddl(OBJECT_TYPE => 'PACKAGE', NAME=>upper('DBMS_JOB'), SCHNAME => 'SYSJOB');