在使用exp/imp時,生成對應dumpfile文件的DDL腳本非常容易,在使用命令imp時,添加參數show, show=y表示展示imp導入的時候,輸出相關DDL語句(不包括insert語句),而不會真正的在數據庫中執行.其實使用數據泵(expdp/impdp)也能生成對應導出dumpfile的DDL語句,參數為sqlfile。如果添加了參數sqlfile就會生成對應dumpfile的SQL DDL腳本,impdp不會真正執行數據導入。
SQLFILE Write all the SQL DDL to a specified file.
If you use sqlfile parameter, impdp will not actulally perform the import process, rather it will generate all DDL that are supposed to be executed by impdp in the sqlfile you specified.
可以使用類似下面腳本生成對應的SQL DDL腳本:
nohup impdp 'userid="/ as sysdba"' directory=dump_dir full=y dumpfile=full_20160501.dmp logfile=test.log sqlfile=db_ddl.sql &