可使用 DBMS_METADATA.GET_DDL()函数 查询数据库对象的DDL语句。

DBMS_METADATA.GET_DDL()函数
语法结构:

SELECT DBMS_METADATA.GET_DDL(OBJECT_TYPE, NAME, SCHEMA) FROM DUAL;

参数说明:
OBJECT_TYPE:对象的类型,如TABLE、INDEX、FUNTION、JOB、PACKAGE、SEQUENCE等;
NAME: 对象名;
SCHEMA:对象所在schema,默认为当前用户所在schema;

应用举例

1.查询当前用户下表EXAMPLE的DDL

SELECT DBMS_METADATA.GET_DDL('TABLE', 'EXAMPLE') FROM DUAL;

2.查询RUI用户下表JOB1的DDL

select dbms_metadata.get_ddl('TABLE','JOB1','RUI') from dual;

3.查询RUI用户下索引PK_DEPT的DDL

select dbms_metadata.get_ddl('INDEX','PK_DEPT','RUI') from dual;

4.查询所有表空间的ddl语句(使用DBA账号)

SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)
FROM DBA_TABLESPACES TS;

5.查询创建用户RUI的ddl

select dbms_metadata.get_ddl('USER','RUI') from dual;

6.查询所有创建用户的ddl

SELECT DBMS_METADATA.GET_DDL('USER',U.username) 
FROM DBA_USERS U;

7.查询一个用户下的所有表,索引,存储过程的ddl

SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name)
FROM USER_OBJECTS u
where U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE');
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐