在sql/plus中可调用dbms_metadata.get_ddl()函数来查看数据库对象的ddl,
便于显示,先设置如下参数:
set line 200;--设置行宽为200字符set pagesize 0;--设置每页的行数为0,(避免分页)set long 99999;--设置长类型显示字节数set feedback off;--关闭回显处理记录行数set echo off;--设置运行命令是不显示语句
获取对象ddl:
SELECT DBMS_METADATA.GET_DLL('TABLE','TABLE_NAME','TABLE_OWNER') FROM DUAL;SELECT DBMS_METADATA.GET_DLL('VIEW','VIEW_NAME','VIEW_OWNER') FROM DUAL;SELECT DBMS_METADATA.GET_DLL('INDEX','INDEX_NAME','INDEX_OWNER') FROM DUAL;SELECT DBMS_METADATA.GET_DLL('FUNCTION','FUNCTION_NAME','FUNCTION_OWNER') FROM DUAL;SELECT DBMS_METADATA.GET_DLL('PROCUDURE','PROCUDURE_NAME','PROCUDURE_OWNER') FROM DUAL;SELECT DBMA_METADATA.GET_DLL('TABLESPACE','TABLESPACE_NAME') FROM DUAL;SELECT DBMS_METADATA.GET_DLL('USER','USER_NAME') FROM DUAL;
获取schema下的所有对象的ddl:
SELECT DBMS_METADATA.GET_DLL('TABLE',u.table_name,u.owner) FROM DBA_TABLES u;SELECT DBMS_METADATA.GET_DLL('VIEW',u.view_name,u.owner) FROM DBA_VIEWS u;SELECT DBMS_METADATA.GET_DLL('INDEX',u.index_name,u.owner) FROM DBA_INDEXS u;SELECT DBMS_METADATA.GET_DLL('FUNCTION',u.object_name,u.owner) FROM DBA_OBJECTS u WHERE OBJECT_TYPE='FUNCTION';SELECT DBMS_METADATA.GET_DLL('PROCUDURE',u.object_name,u.owner) FROM DBA_OBJECTS u WHERE OBJECT_TYPE='PROCUDURE';SELECT DBMS_METADATA.GET_DLL('TABLESPACE',u.tablespace_name) FROM DBA_TABLESPACES u;SELECT DBMS_METADATA.GET_DLL('USER',u.user_name) FROM DBA_USERS u;