set pagesize 0
set long 90000
set feedback off
set echo off
–table ‘s ddl
SELECT DBMS_METADATA.GET_DDL(‘TABLE’, U.TABLE_NAME) FROM USER_TABLES U;
–index ‘s ddl
SELECT DBMS_METADATA.GET_DDL(‘INDEX’, U.INDEX_NAME) FROM USER_INDEXES U;
–view ‘s ddl
SELECT DBMS_METADATA.GET_DDL(‘VIEW’, U.VIEW_NAME) FROM User_Views U;
–procedure ‘s ddl
SELECT DBMS_METADATA.GET_DDL(‘PROCEDURE’, U.object_name) FROM User_objects U WHERE object_type=’PROCEDURE’;
dbms_metadata.get_ddl(‘TABLE’,’TAB1′,’USER1′)
三个参数中,第一个指定导出DDL定义的对象类型(此例中为表类型),第二个是对象名(此例中即表名),第三个是对象所在的用户名。
下面我们看一个例子:
SQL> create view hjm_test_view as 2 select * from v$datafile; 视图已建立。 SQL> set pagesize 0 SQL> set long 90000 SQL> set echo off SQL> set feedback off SQL> select dbms_metadata.get_ddl('VIEW','HJM_TEST_VIEW','HEJIANMIN')FROM USER_VIEWS; CREATE OR REPLACE FORCE VIEW "HEJIANMIN"."HJM_TEST_VIEW" ("FILE#", "CREATION_C #", "STATUS", "ENABLED", "CHECKPOINT_CHANGE#", "CHECKPOINT_TIME", "UNRECOVERABLE _CHANGE#", "UNRECOVERABLE_TIME", "LAST_CHANGE#", "LAST_TIME", "OFFLINE_CHANGE#", "ONLINE_CHANGE#", "ONLINE_TIME", "BYTES", "BLOCKS", "CREATE_BYTES", "BLOCK_SIZE ", "NAME", "PLUGGED_IN", "BLOCK1_OFFSET", "AUX_NAME") AS select "FILE#","CREATION_CHANGE#","CREATION_TIME","TS#","RFILE#","STATUS","ENA GE#","CHECKPOINT_TIME","UNRECOVERABLE_CHANGE#","UNRECOVERABLE_TIME","LAST_CHANGE #","LAST_TIME","OFFLINE_CHANGE#","ONLINE_CHANGE#","ONLINE_TIME","BYTES","BLOCKS" ,"CREATE_BYTES","BLOCK_SIZE","NAME","PLUGGED_IN","BLOCK1_OFFSET","AUX_NAME" from v$datafile SQL> DROP VIEW HJM_TEST_VIEW; SQL>
详细的具体内容介绍,可见http://www.oracle.com.cn/onlinedoc/appdev.920/a96612/d_metad2.htm