加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Impdp导入数据时报ORA-02374

(2014-11-09 15:27:01)
标签:

杂谈

问题背景:今天通过expdp/impdp的方法,把数据库的数据导入到开发人员的台式机上面,居然报ORA-02374的错误;

详细报错如下:

ORA-02374: conversion error loading table "ADM_ERP"."ATTACH"

ORA-12899: value too large for column ZT (actual: 6, maximum: 4)

ORA-02372: data for row: ZT : 0X'D5FDB3A3'

ORA-02374: conversion error loading table "ADM_ERP"."ATTACH"

ORA-12899: value too large for column ZT (actual: 6, maximum: 4)

Expdp和impdp这个工具也用了有段时间了,跨平台跨版本的环境都有试过,但是这次出现的报错一直都没有遇到过,观察了一下发现了问题的所在,源数据库的字符集为ZHS16GBK,目标数据库的字符集AL32UTF8,所以当导入的时候由于字符集不一致导致的;

 

解决方法:

    这个是个测试环境,所以最初的想法是通过dbca去重新创建数据库,并选择正确的字符集;但是事情总是要有些波折,发现当前的数据库版本是Express Edition,居然不能通过DBCA重新创建数据库,更坑的事,在重新安装的时候,没有任何选线,全部都是使用默认的参数;

    修改server端字符集(不建议使用),详细的步骤如下:

SQL>SHUTDOWN IMMEDIATE;

SQL>STARTUP MOUNT EXCLUSIVE;

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

SQL>ALTER DATABASE OPEN;

SQL>ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;

SQL>SHUTDOWN immediate;

SQL>startup;

 

总结:经过以上操作,数据库便可以顺利的打开了,但是在进行查询的时候,还需要注意客户端的字符集,设置成SIMPLIFIED CHINESE_CHINA.ZHS16GBK,保证通过客户端打开的时候不是乱码;

*********************************************************************************************************************

http://s9/middle/001gpgelzy6Nty85w0058&690本文作者:JOHN QQ:1916066696 (请备注数据库)

ORACLE技术博客:
ORACLE 猎人笔记 http://blog.itpub.net/12679300/

请扫描加微信号!

********************************************************************************************************************

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有