暂无图片
求大神们帮忙,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
打赏 0
小姜

导入里加上tables=xx试试

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

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

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

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

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

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

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

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



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

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

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

drop table XX purge;

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

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

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

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

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

暂无图片 评论
暂无图片 有用 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
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle 使用 rman 备份, 备份信息是记录到控制文件 ,现在控制文件 900M,有什么办法可以对控制文件瘦身?
回答 2
定期做清理吧,一般保留策略都是7天
Oracle 12c中的Sample样例怎么使用?
回答 1
你想问的是怎么使用还是怎么安装?
19C 集群的GI,支持11.2.0.4的DB么?
回答 2
如果和9i还是有间接dblink还是存在问题clusteware支持,db检查ASMinstance的databasecompatibility
在select语句中,何时使用分组子句?何时不必使用分组子句?
回答 1
已采纳
select语句中使用分组子句的先决条件是要有集合函数。当集合函数值与其他属性的值无关时,不必使用分组子句;当集合函数值与其他属性的值有关时,必须使用分组子句。
v$logmnr_content视图中如何确定sql执行的先后顺序
回答 1
(RSID,SSN)两个字段能确定唯一的行rsid:XX1.XX2.XX3xx1:16进制的归档日志IDxx2:当前行的blockidxx3:16进制的当前行blockid的偏移量ssn:SQLseq
oracle中适合用序列做主键吗?
回答 7
已采纳
不适合吧,mysql的话适合自增,mysql索引组织表。oracle堆表适合用有意义的做主键
US7ASCII字符集
回答 1
SELECTFROMv$nlsvalidvaluesWHEREVALUELIKE'%US7ASCII%'看看11g库的字符集支持情况
Oracle 做了一个备份的批处理,把密码部分加密,怎么处理?
回答 2
如果备份方式是expdp导出备份,使用expdp命令时,可以不用写账号密码,而直接写expdp\'/assysdba\'...(此语句是以sys用户登录到数据库中的)然后脚本设定在oracle的cro
MySQL有没有类似Oracle中INTERVAL分区的功能
回答 7
已采纳
mysql不能自动添加分区,建议使用脚本或者event管理。
oracle instr函数模糊查询 当第二个参数要匹配的字符串没有传的时候,查询不出来结果,怎么处理?
回答 2
不同的数据库,对于同一个函数,的确会有不一样的情况,你想让这个sql能查出结果,除非修改oracle的标准包,否则就只能换写法