Impdp导入数据时报ORA-02374

简介: 问题背景:今天通过expdp/impdp的方法,把数据库的数据导入到开发人员的台式机上面,居然报ORA-02374的错误;详细报错如下:ORA-02374: conversion error loading table "ADM_ERP".

问题背景:今天通过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,保证通过客户端打开的时候不是乱码;

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

本文作者:JOHN QQ:1916066696 (请备注数据库)

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

请扫描加微信号!

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

相关文章
|
Oracle 关系型数据库 数据库
|
5月前
|
SQL Oracle 关系型数据库
使用Oracle IMP导入数据
使用Oracle IMP导入数据
|
SQL Oracle 关系型数据库
Oracle-数据泵expdp/impdp实操
Oracle-数据泵expdp/impdp实操
353 0
|
Oracle 关系型数据库 Windows
数据泵报错UDI-03114和ORA-03114
数据泵报错UDI-03114和ORA-03114
563 0
|
Oracle 关系型数据库 数据库
Oracle 11gR2 中使用expdp导出数据
一:导出前期准备: 1.创建目录对象: CREATE DIRECTORY dump_dir AS ‘c:\dump’; 2.在操作系统上创建相应的目录。
1209 0
|
数据安全/隐私保护
|
数据库 关系型数据库 Oracle
|
存储 SQL 数据库