ORA-12899: value too large for column

原因:中文在UTF-8里占3个字节,ZHS16GBK里占2个字节,而源dmp文件字符集是ZHS16GBK的库导出来的,现在要导入到目标字符集为UFT-8的库里。

 解决:需要将目标数据库的字符集改为ZHS16GBK

sqlplus /nolog

conn /as sysdba

select * from nls_database_parameters; //查看字符集

###NLS_CHARACTERSET=AL32UTF8,现需要将该值改为ZHS16GBK

shutdown immediate;startup restrict;

alter session set sql_trace=true;

alter system enable restricted session;

alter system set job_queue_processes=0;

alter system set aq_tm_processes=0;

alter database open; //实际已打开alter database character set zhs16gbk;//此操作有可能为限制ORA-12712: new character set must be a superset of old character set

alter database character set internal_use zhs16gbk;//此操作可以跳过超集的检查

shutdown immediate;

startup;