oracle中的会话编码是什么意思,有什么作用

[复制链接]
查看11 | 回复0 | 2010-2-9 11:10:00 | 显示全部楼层 |阅读模式
我有一个问题一直模糊不清,想请各位大虾指点下,就是关于oracle中的session的编码的,我不清楚这个值是怎么来的,又应该怎么去设置它 。而且也不清楚这个值对数据存储和读取的影响。
具体的情况类似如下:
结合查寻nls_instance_parameters,nls_database_parameters,nls_session_parameters,我可以得出我的数据库的编码和语言情况是SIMPLIFIED CHINESE_CHINA.UTF8
在windows下,使用sqlplus登录到该数据库,调用如下的语句查询当前会话的编码

select userenv('language') from dual ;或者调用 select* from v$nls_parameters ; 得到的结果都是 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
此时我查询注册表中的NLS_LANG也是这个值。也即使说采用的是默认的操作系统所使用的编码方式 。
但是此时我如果通过linux下的sqlplus 访问这个数据库,环境如下 ,调用 echo $LANG 输出的结果如下:zh_CN.UTF-8
但是我登录数据库之后执行相同的查询代码select userenv('language') from dual得到结果也是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

我就是不大清楚这个session范围的characterset 究竟是什么意思,有什么作用呢。
目前我是感觉这个值似乎没用,如果在Linux下通过sqlplus 访问数据库时,只要将我对应的环境变量 NLS_LANG如下设置就可以了 export NLS_LANG= SIMPLIFIED CHINESE_CHINA.UTF8
就可以正常的操作数据库中的中文,不存在任何问题。
哪位大虾可以帮我解释下这个 所谓的会话范围的字符集设置是什么意思阿,谢谢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行