数据库导入时遇到的问题

1.table_exists_action参数说明

使用imp进行数据导入时,若表已经存在,要先drop掉表,再进行导入。

而使用impdp完成数据库导入时,若表已经存在,有四种的处理方式:

1)  skip:默认操作

2)  replace:先drop表,然后创建表,最后插入数据

3)  append:在原来数据的基础上增加数据

4)  truncate:先truncate,然后再插入数据

注:使用append如果导出数据时 选择了 data only  则可能遇到

1.ORA-39152: Table "TUSER"."TAB1" exists. Data will be appended to existing table but all dependent metadata will be skipped due to table_exists_action of append
这个不用管 这是告诉你已经把导入数据添加到了该表

2.ORA-31693: Table data object "TUSER"."TAB1" failed to load/unload and is being skipped due to error:

ORA-00001: unique constraint (TUSER.PK_TAB1) violated
遇到这个问题 则是在说append添加导入数据时 违反了唯一性原则 导致主键冲突无法进行数据导入 此时如果数据库版本在11g及以上 可选择 加入data_options=skip_constraint_errors 处理 如果是10g 则可以选择使用truncate参数或replace参数 

后面附上我的数据泵导入导出语句:

impdp pqss/pqss@localhost/orcl remap_schema=pqss:pqss dumpfile=EXPDP_PQSS20211026.DMP  directory=dir_dp job_name=pqss table_exists_action=replace logfile=TEST.log data_options=skip_constraint_errors

@echo off
set dir_home=G:\EXPDP

set time=%date:~0,4%%date:~5,2%%date:~8,2% 
setlocal enabledelayedexpansion
for /f  "delims=" %%i in (%dir_home%\Name.txt)  do ( 
expdp pqss/pqss@localhost/orcl tables='table_name' dumpfile=EXPDP_PQSS%time%.dmp directory=dir_dp logfile=EXPDP_PQSS.log
)

pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值