这里用到的是Oracle的DDL语句的用法
用于获得某个schema下所有的表、索引、视图、存储过程、函数的DDL
set pagesize 0 set long 90000 set feedback off set echo off spool schema_ddl.sql SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name,u.owner) FROM DBA_TABLES u; SELECT DBMS_METADATA.GET_DDL('VIEW',u.view_name,u.owner) FROM DBA_VIEWS u; SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name,u.owner) FROM DBA_INDEXES u; select dbms_metadata.get_ddl('PROCEDURE',u.object_name, u.owner,) from dba_objects u where u.object_type = 'PROCEDURE'; select dbms_metadata.get_ddl('FUNCTION',u.object_name, u.owner,) from dba_objects u where u.object_type = 'FUNCTION'; spool off;
表空间的DDL
select dbms_metadata.get_ddl('TABLESPACE','表空间名称') from dual;单个用户的DDL
select dbms_metadata.get_ddl('USER','EPAY_USER') from dual;