在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;