关于中文字符串乱码解决方案

oracle中文字符串乱码(在安装oracle没有选择默认安装字符类型造成)

1.客户端访问字符不一致
  这种情况,我的电脑 - 属性-系统属性-环境变量-系统变量-新建:NLS_LANG   值:AMERICAN_AMERICA.UTF8
2.服务端字符不是ZHS16GBK或者注册表下面不是SIMPLIFIED CHINESE_CHINA.ZHS16GBK
  注册表:HEY_LOCAL_MAHINE - SOFTWARE - WOW6432Node - ORACLE - KEY_OraDb11g_home1 下NLS_LANG字段值改为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
        不同系统oracle注册表路径有稍许差异:HEY_LOCAL_MAHINE - SOFTWARE  - ORACLE - OraDb11g_home1


//查询oracle服务的字符格式
   SELECT * FROM NLS_DATABASE_PARAMETERS; 
   对应NLS_CHARACTERSET 字段的值是否是:ZHS16GBK?
 
设置oracle字符格式:  
  权限不足:默认
     sys as sysdba
     manager
SQL> shutdown immediate;


数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup restrict;                                 //需要用restrict模式
ORACLE 例程已经启动。
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
ALTER DATABASE character set INTERNAL_USE ZHS16GBK
*
第 1 行出现错误:                                       //字符长度clob太长,去掉表,重新导入该表,或者修改字符长度
ORA-00604: ???QL ?????????
ORA-00972: ????????
SQL> alter database character set zhs16gbk;             //如果超集报错,则用下面的




SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;//需要用INTERNAL_USE 类型跳过自检超集
//成功




登录数据库查看中文字符是否正确显示,goodlucky!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值