一般来说,把表格、索引以及存储过程的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;