impdp、数据泵导入的问题

1. 使用 impdp 导入时可不可以只导入一张表?
2. 怎么查看备份文件中具体有哪些表?

具体问题:
我在使用 impdp 执行导入时想先把数据库中和导入文件中相同的表删除,然后在导入导入文件,请问我该怎么做?

-------------------------------------------------------------------------------------------------------------------------
以前的处理方法:
以前使用 imp 导入时,是先导入导入文件中的“OUTPUTBACKUPINFO”表,根据这张表上的记录逐个删除旧表,之后再执行一遍imp导入全库。

第1个回答  2014-09-26
1、使用tables参数
TABLES
标识要导入的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。
例如:
impdp dexter/d directory=impdir dumpfile=1.dmp tables=test1
加了tables=test1表示,只将1.dmp文件中的test1表导入到数据库中。
2、使用sqlfile参数
SQLFILE
将所有的 SQL DDL 写入指定的文件。
例如:
impdp dexter/d directory=impdir dumpfile=1.dmp sqlfile=1.sql
表示将1.dmp文件中的所有ddl语句输出到1.sql中(有建表语句就可以知道dmp文件中有什么表了)
3、使用TABLE_EXISTS_ACTION参数,这里按照你的需求,应该是table_exists_action=replace
TABLE_EXISTS_ACTION
导入对象已存在时执行的操作。
有效的关键字为: APPEND, REPLACE, [SKIP] 和 TRUNCATE。
例如:
impdp dexter/d directory=impdir dumpfile=1.dmp TABLE_EXISTS_ACTION=replace
表示导入1.dmp文件的时候,如果schema中拥有相同名称的表,就会被drop掉,然后被dmp文件中的表取代。

想了解更多,可以去看官方文档utility,或者执行命令impdp help=y追问

大神,导入的时候可以把已存在的存储过程也替换掉吗

追答

你看一下在sqlfile里面有没有,如果有的话,应该是会替换掉的。
不过impdp这个工具里面确实没有特殊设置的选项。

本回答被提问者和网友采纳
相似回答