oracle IMPDP导入的时候,能自动把之前表中的数据都删除吗?

2025-03-25 19:23:16
推荐回答(5个)
回答1:

不用删除,可以自动覆盖掉了。如下参考:

1.有两种导入方法:IMP和impdp。

2.IMP导入的时候:如果已经存在此表,会告诉你无法创建此表,因为表已经存在。同时使用参数full=yignore=y那就是全部导入,把dmp里的所有数据插入到表里面。

3.数据备份,使用命令:expuser/userfile=d:\user.dmpfull=y恢复时,使用命令:impuser/userFILE=d:\user.dmpfromuser=usertouser=userfull=yignore=y。

4.IMPDP导入的时候:用参数table_exists_action=replace进行删除后覆盖table_exists_action选项。

5.数据备份,使用命令:expdpuser/userdirectory=dump_dirdumpfile=schema.dmp

logfile=schema.logschemas=userjob_name=exp_user_schema恢复时。

注意事项:

Oracleimpdp是一个标准版本和企业版本的问题。标准版本中不支持某些函数。最好用相同的版本重新安装企业版本,包括导入较小的版本。如果必须使用当前库,则可以在导出时添加version=11.2.0。如果未能将其更改为10.2.0,请重试。

回答2:

可以的。IMP请看参数说明。
写个脚本块实现数据删除(千万不要用于做坏事)如:
declare
cursor c is select 'truncate table '||OWNER||'.'||OBJECTNAME as ss from dba_objects where OWNER= 'XXX' and OBJECTNAME LIKE 'T_%';
cSQL Varchar2(4000);
begin
for r in c loop
cSQL := r.ss;
execute immediate cSQL;
end loop;
end;

回答3:

drop user username cascade;就把这个用关联的所有表都删除了,然后重新建个用户,

回答4:

rows=n 是不导入数据吧。。。而且是imp的命令,lz问的是impdp的命令
应该用
TABLE_EXISTS_ACTION
Action to take if imported object already exists.
Valid keywords: (SKIP), APPEND, REPLACE and TRUNCATE.
另外推荐一篇非常好的在线文档.exp/imp的命令和expdp/impdp的对应关系

How Data Pump Export Handles Original Export Parameters
How Data Pump Import Handles Original Import Parameters
http://download.oracle.com/docs/cd/E11882_01/server.112/e16536/dp_legacy.htm#SUTIL959

回答5:

Oracle 自己的命令:
imp user=youuser/youpasswd file=youuser.dmp rows=n