关于数据库的字符集问题
我建了一个oracle服务器。字符集开始让管理服务器设置AMERICAN_AMERICA.US7ASCII。因为我要导入进来的数据备份,原先的oracle字符集好像就是这个。。可是他们告诉我,,在他们设置的时候,选择项里没有这个字符集我也不知道他们说的什么意思
然后给我建了UTF8类型。当我导入的时候,报了错误Export file created by EXPORT:V11.01.00 via conventional path
import done in AL32UTF8 character set and UTF8 NCHAR character set
export client uses US7ASCII character set (possible charset conversion)
export server uses AL16UTF16 character set (possible charset conversion)
我的数据库很多都是韩文。插入语句执行后
imp system/oracle@PMDS file=/var/test/data/RMMSIDEV_data.dmp fromuser=RMMSIDEV touser=RMMSIDEV tables='pro_t_%' IGNORE=y会一直报这个错误
IMP-00019: row rejected due to ORACLE error 12899
IMP-00003: ORACLE error 1 encountered
ORA-12899: value too large for column "JRGAZX"."DTLMB"."CC" (actual: 66, maximum: 50)这样的错误。。用toad去读取数据,怎么看都是乱码。用应用也是,全是乱码不知道这个怎么处理

解决方案 »

  1.   

    1、数据库字符集最好是一致。
    2、us7ascii是单字节字符集,utf8是多字节字符集,
         存储同样的字符,你原来定义的长度可能不够!
    3、删除原来的数据库,重新创建数据库,在创建时设置字符集。
      

  2.   

    从小字节到大字节,好像UTF8是3个字节保存一个汉字的,这样从新导入也会出现很多问题。比如很多资料因为栏位长度导入失败。