IMP出现的ORA-01401错误可能和字符集有关(转载)
2007-10-17 14:34
525 查看
今天在论坛上,看到有一位朋友问
“我备份数据库后在其他的机器上再导入这个数据库,出现如下错误,并只能导
入部分数据。
IMP-00019: row rejected due to ORACLE error 1401
IMP-00003: ORACLE error 1401 encountered
ORA-01401: inserted value too large for column
我装的是ORACLE8.1.7,最后出现column 1 66790 的提示。
该怎么解决?”
我第一想到,IMP会自动创建表,因此,和表字段长度定义不一致显然无关。
那么可能可以解释的就是,字符集的不一致,导致相同的字符,存储空间需求不一致。
exp从一个single byte字符集的数据库,而imp的是一个多字符集的数据库,就有可能出现这样的问题。如WE8ISO8859P1->UTF8
证明如下:
我的数据库采用WE8ISO8859P1字符集。
我们来看看,你好这个字符的存储字节情况。
SQL> select dump('你好',16) from dual;
DUMP('拿好',16)
-------------------------
Typ=96 Len=4: c4,e3,ba,c3
*需要4个字节
而UTF8情况下呢,
SQL> select dump(convert('你好','UTF8','WE8ISO8859P1'),16) from dual;
DUMP(CONVERT('拿好','UTF8','WE8ISO88
------------------------------------
Typ=1 Len=8: c3,84,c3,a3,c2,ba,c3,83
*需要8个字节
因此,当DUMP文件内容被IMP到UTF8的表中,就需要8个字节,使原来的一倍,那么显然就会导致ORA-01401: inserted value too large for column的错误。
“我备份数据库后在其他的机器上再导入这个数据库,出现如下错误,并只能导
入部分数据。
IMP-00019: row rejected due to ORACLE error 1401
IMP-00003: ORACLE error 1401 encountered
ORA-01401: inserted value too large for column
我装的是ORACLE8.1.7,最后出现column 1 66790 的提示。
该怎么解决?”
我第一想到,IMP会自动创建表,因此,和表字段长度定义不一致显然无关。
那么可能可以解释的就是,字符集的不一致,导致相同的字符,存储空间需求不一致。
exp从一个single byte字符集的数据库,而imp的是一个多字符集的数据库,就有可能出现这样的问题。如WE8ISO8859P1->UTF8
证明如下:
我的数据库采用WE8ISO8859P1字符集。
我们来看看,你好这个字符的存储字节情况。
SQL> select dump('你好',16) from dual;
DUMP('拿好',16)
-------------------------
Typ=96 Len=4: c4,e3,ba,c3
*需要4个字节
而UTF8情况下呢,
SQL> select dump(convert('你好','UTF8','WE8ISO8859P1'),16) from dual;
DUMP(CONVERT('拿好','UTF8','WE8ISO88
------------------------------------
Typ=1 Len=8: c3,84,c3,a3,c2,ba,c3,83
*需要8个字节
因此,当DUMP文件内容被IMP到UTF8的表中,就需要8个字节,使原来的一倍,那么显然就会导致ORA-01401: inserted value too large for column的错误。
相关文章推荐
- Oracle用imp导入出现ora-20000错误
- 有关ORA-12560: TNS:协议适配器错误在安装oracle时出现的问题
- 设置10503事件可能导致lob对象的更新出现错误(ora-24816)
- 使用Imp实用程序时出现ORA-1461错误(文档ID 444171.1)
- LOB字段导入遇出现ORA-00959错误, 并由此引发IMP-00017和IMP-00003错误
- ORA-12557的出现有时候与ORACLE_HOME未设置或设置错误有关
- ORA-12154: TNS: 无法解析指定的连接标识符错误(在执行imp时候出现的)
- 从eclipse3.4中启动tomcat6.0.16出现有关“SetPropertiesRule”错误的问题解决方法[转载]
- 初次新建android项目时可能出现的错误
- 出现错误,提示:各个节在每个配置文件中只能出现一次。有关异常的信息,请参阅帮助主题 <location>。请问
- 在用scott用户导出dmp文件后,用sys用户执行IMP语句出现ORA-28009 connection to sys should be as sysdba or sysoper错误
- ORA-00604: 递归 SQL 级别 1 出现错误,ORA-01000: 超出打开游标的最大数
- java连接mysql出现字符集错误处理
- RMAN 下执行startup 命令出现&quot;ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务&quot; 错误
- PL/SQL Developer 连接数据库出现“ORA-12154: TNS: 无法解析指定的连接标识符”错误
- 起动crs出现的问题以及ORA-00376错误
- 关于ORACLE出现ORA-00904标识符错误的问题原因
- imp-00003: 遇到 ORACLE 错误 20001,导数据出现问题
- 代码访问Oracle,出现ORA-01000超出打开游标的最大数 错误之解决方法
- 问题解决_(转载)在VisualStudio 2012上使用MVC3出现错误的解决办法