Oracle 查询数据库对象的DDL语句
可使用 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');