主题 : ora12899 字段 超长问题
级别: 商业授权用户
UID: 51265
积分:266 加为好友
威望: 0 精华: 0
主题:45 回复:155
注册时间:2013-08-21
在线时长:0
1#   发表于:2013-09-02 11:19:47  IP:211.74.*.*
导入貌似都很顺利,就是出了个如下错误: IMP-00019: row rejected due to ORACLE error 12899 IMP-00003: ORACLE error 12899 encountered ORA-12899: value too large for column "JEECMS2012SP1"."JO_CONFIG"."CFG_VALUE" (actual: 287, maximum: 255) Column 1 message_forgotpassword_text Column 2 ?.阿?ㄤ娇??EECMS绯荤?浼..瀵..?惧.?..... IMP-00019: row rejected due to ORACLE error 12899 IMP-00003: ORACLE error 12899 encountered ORA-12899: value too large for column "JEECMS2012SP1"."JO_CONFIG"."CFG_VALUE" (actual: 283, maximum: 255) Column 1 message_text Column 2 ?.阿?ㄤ娇??EECMS绯荤?浼..瀵..?惧.?..... 12 rows imported 麻烦各位达人给个解决方案,谢谢
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
2#   发表于:2013-09-02 11:36:58  IP:115.168.*.*
初步断定是字符集问题,中文在 UTF-8 里占 3 个字节, ZHS16GBK 里占 2 个字节 , 而源 dmp 文件字符集是 ZHS16GBK 的库到出来的,现在要导入到目标字符集为 UFT-8 的库里。 修改 oracle 10g 的字符集 Oracle 修改数据库字符集为: ZHS16GBK 查看服务器端字符集 SQL > select * from V$NLS_PARAMETERS 修改: $sqlplus /nolog SQL>conn / as sysdba SQL>SHUTDOWN IMMEDIATE SQL>STARTUP MOUNT 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 CHARACTER SET ZHS16GBK ALTER DATABASE CHARACTER SET ZHS16GBK *ERROR at line 1: ORA-12712: new character set must be a superset of old character set 报字符集不兼容,此时下 INTERNAL_USE 指令不对字符集超集进行检查: SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK; SQL>SHUTDOWN IMMEDIATE SQL>STARTUP 再次用 imp 导入,就没有问题了。
功成由勤,业精于勤。
级别: 商业授权用户
UID: 51265
积分:266 加为好友
威望: 0 精华: 0
主题:45 回复:155
注册时间:2013-08-21
在线时长:0
3#   发表于:2013-09-02 12:49:17  IP:211.74.*.*
谢谢了
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
4#   发表于:2013-09-02 13:30:52  IP:115.168.*.*
功成由勤,业精于勤。
1 共1页