关于Oracle设置字符集

关于Oracle设置字符集

1、oracle字符集说明

网上很多,说的比较明白的个人推荐
参考:
Oracle 客户端 NLS_LANG 的设置

2、修改字符集

不用修改全部,只修改最后一部分即可,前半部分作为提示语言使用,如果前半部分不能匹配,只是Oracle提示会出现???。
SIMPLIFIED Chinese_CHINA.ZHS16GBK
AMERICAN_AMERICA.ZHS16GBK
查询结果中文部分都正常显示

3、本人遇到问题

修改注册表中的字符集nls_lang不起作用,必须在环境变量中建立nls_lang变量,通过环境变量修改才能实现字符集的变更,主要是查询数据中文不显示乱码。

通过对比试验,使用以下语句校验
select t.*,t.rowid from comm.applications t;-- for update

select * from nls_session_parameters; --会话字符集
select * from nls_instance_parameters; --客户端字符集
select * from nls_database_parameters; --数据库字符集
select userenv(‘language’) from dual; --当前环境中字符集同数据库

根据资料主要看会话端NLS_CHARACTERSET是否和数据库一致
通过对比发现,如果不设置环境变量,无论如何修改注册表,客户端的NLS_CHARACTERSET都是US7ASCII

注册表设置的字符集
只有设置了环境变量,通过环境变量修改字符集才会起作用

貌似有点眉目:
(1)如果是安装的Oracle(客户端或者服务端),修改注册表NLS_LANG和环境变量都可以。
(2)如果在之后使用了免安装版的installclient11.1之类的包,并且在环境变量path路径中配置了指向该免安装包的地址,那只能能通过修改环境变量中的NLS_LANG解决问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值