Discuz教程网

Oracle汉字长度的问题解决方案

[复制链接]
authicon davidli 发表于 2010-10-26 11:09:24 | 显示全部楼层 |阅读模式

问题描述:
    varchar2(4000) abc;  
  • intert into table_name(abc) values('这里有1500个汉字……');  

报错:插入字符过长!经过测试,发现一个汉字占3个字节,因此报错!!!
问题所在:
使用的字符集是UTF8,就有可能出现这个错误!
使用命令查看:
    SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';  
  • PARAMETER  --------------------------------------------------------------------------------  
  • VALUE  --------------------------------------------------------------------------------  
  • NLS_CHARACTERSET  
  • AL32UTF8  

解决方法:
建议使用ZHS16GBK字符集!
操作:
    SQL> SHUTDOWN IMMEDIATE;  
  • SQL> STARTUP MOUNT;  SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;  
  • SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;  SQL> ALTER DATABASE OPEN;  
  • SQL> ALTER DATABASE CHARACTER SET AL32UTF8/ZHS16GBK;  SQL> SHUTDOWN IMMEDIATE;  
  • SQL> STARTUP;  

问题解决!






上一篇:Oracle数据库中出现奇怪表名的原因以及解决
下一篇:Oracle over() 函数的实际用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 19:07

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表