一般來說,把表格、索引以及存儲過程的DLL轉換成平面文件(flat file)是一個痛苦的過程。Oracle9i在其DBMS_METADATA軟件包中提供了GET_DDL函數來拷貝字典的DDL句法。
盡管新的存儲字句以及高級參數的不斷出現,得到表格和索引的定義仍舊是一個問題。在Oracle9i出現之前,DBA通常不得不在一個特定庫中保存DDL的源代碼。由於DBA必須分別維護和管理該數據字典中的不同版本的表格和索引DDL,這樣的日子可是不太好過的。
但是從Oracle9i開始,DBA可以保存數據字典中的所有表格和索引定義,並且無論何時需要遷移對象都可以用GET_DDL函數來得到拷貝。
下面是GET_DDL函數的一個例子。它非常簡單易用,而且它只需要OBJECT_TYPE和OBJECT_NAME這兩個輸入參數。請確保把行值設置為一個較大的數值:GET_DDL返回一個CLOB數據類型,你可以用SQL *Plus來顯示結果集合。
Set lines 90000
Spool sales_table_ddl.sql
Select dbms_metadata.get_ddl('TABLE','SALES') from dual;
Spool off;