暂无图片
求大神们帮忙,oracle 11g同版本 11.2.0.4 数据泵导出导入数据报错
我来答
分享
小蚂蚁
2021-11-29
求大神们帮忙,oracle 11g同版本 11.2.0.4 数据泵导出导入数据报错

导出语句:

expdp user/passwd directory=DATA_PUMP_DIR dumpfile=xx.dmp logfile=xx.log tables=xx

导入语句

 impdp user/passwd DIRECTORY=DATA_PUMP_DIR dumpfile=xx.dmp logfile=xx.log table_exists_action = replace 

导入报错

ORA-31693: Table data object "user"."table":"part1" failed to load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data
ORA-24329: invalid character set identifier

源库字符集  和  目标库字符集一致: 

  NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM


求助: 怎么查看解决问题。 





我来答
添加附件
收藏
分享
问题补充
10条回答
默认
最新
小蚂蚁

LINUX 环境

暂无图片 评论
暂无图片 有用 0
小姜

导入里加上tables=xx试试

暂无图片 评论
暂无图片 有用 0
小蚂蚁
题主
2021-11-29
不行
范伟林

服务器字符集环境变量要设置为中文,export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,针对你expdp的服务器

暂无图片 评论
暂无图片 有用 0
小蚂蚁
题主
2021-11-30
echo $NLS_LANG = AMERICAN_AMERICA.ZHS16GBK 默认的就是
小蚂蚁

补充: NLS_LANG  = AMERICAN_AMERICA.ZHS16GBK    LANG=en_US.UTF-8     2边为一致的

暂无图片 评论
暂无图片 有用 0
www_heql

NLS_LANG设成跟操作系统的一样,你试试

暂无图片 评论
暂无图片 有用 0
Z
ztbei

问题的出现是由于甲骨文函数“kupaxfsi”&并行处理。在11.1版本中,这个问题与“转换”功能一起出现,根据未发布的错误7388681 并行查询服务器由于零长度颗粒意外死亡。大型加密和/或压缩表出现问题。



使用PARALLEL=1重新运行数据泵导入如果使用11.1版,请记录一个新的服务请求,并针对错误7388681向您的版本和平台请求一次性反向端口。根据注释742060.1当前数据库版本的发行时间表,您需要购买扩展支持。如果使用11.2版,请使用重现问题所需的文件记录新的服务请求。

暂无图片 评论
暂无图片 有用 0
cqiwen

根据报错来看,你导出的表应该是一个分区表。而你导入的环境中应该也存在一个同名的分区表。估计是两张表的分区不一致导致的。先将目标库中的同名表删除,然后再导入试试。

drop table XX purge;

impdp user/passwd DIRECTORY=DATA_PUMP_DIR dumpfile=xx.dmp logfile=xx.log table_exists_action = replace

暂无图片 评论
暂无图片 有用 0
小蚂蚁

以上问题测试都没成功,改为 exp/imp  可以导入成功不知道什么原理! 感谢大家的回答

暂无图片 评论
暂无图片 有用 0
小蚂蚁

测试环境,最近重装了下库,好了。 大胆猜测,数据库字符集有变动(或者动过相关参数),但是没有全部变过来,导致部分字符集不能识别。

暂无图片 评论
暂无图片 有用 0
TXX

1、检查导出和导入的数据库的字符集是否一致:

SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');

如果不一致(比如目标端字符集是:AL32UTF8),这样导入:

impdp user/passwd DIRECTORY=DATA_PUMP_DIR dumpfile=xx.dmp logfile=xx.log table_exists_action=replace TRANSFORM=SEGMENT_ATTRIBUTES:N:PROPS_NLS_CHARACTERSET:'AL32UTF8'

2、如果字符集是一致的,那么问题可能是数据泵工具的版本不一致。保在导出和导入数据库中使用相同版本的数据泵工具。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏