关于字符集中NLS_LANG参数show parameter nls 和v$nls_parameter 中的值不一样
来源:互联网 发布:电脑服装效果图软件 编辑:程序博客网 时间:2024/05/18 10:15
今天下午,在测试库上偶然发现:
alter session set nls_language='american'; 后
show parameter nls
这个nls_language参数竟然没有变
执行:select * from v$nls_parameters; (查看当前session的)
这个值变了;
也就是说我alter session set nls_language='american';修改当前会话的此参数是没错的
那为什么show parameter nls中的值没变呢?
------------------------------------------------------------------------------------------------------------------------------------
找了一下午,总算有点眉目了
关于NLS相关的参数,比较特殊:
它有三个档:
1、数据库服务器字符集:select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
2、客户端字符集环境:select * from nls_instance_parameters,其来源于v$parameter , 表示客户端的字符集的设置
----这就是show parameter nls中的参数(show parameter 显示的就是v$parameter 中的值)
3、当前会话的字符集:select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置
----我们alter session set nls_language='AMERICAN'; 改的就是会话的字符集
所以说我们alter session set nls_language='AMERICAN'; 后show parameter nls中的值并没有变;
因为NLS相关的参数比较特殊,show parameter nls 显示的是instance档的,而不是当前session的;
别的参数,show parameter 显示的是当前session的
*****************补充********************
SQL> select * from nls_database_parameters; PARAMETER VALUE------------------------------ --------------------------------------------------------------------------------NLS_LANGUAGE SIMPLIFIED CHINESENLS_TERRITORY CHINANLS_CURRENCY ?NLS_ISO_CURRENCY CHINANLS_NUMERIC_CHARACTERS .,NLS_CHARACTERSET ZHS16GBKNLS_CALENDAR GREGORIANNLS_DATE_FORMAT DD-MON-RRNLS_DATE_LANGUAGE SIMPLIFIED CHINESENLS_SORT BINARYNLS_TIME_FORMAT HH.MI.SSXFF AMNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AMNLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZRNLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZRNLS_DUAL_CURRENCY ?NLS_COMP BINARYNLS_LENGTH_SEMANTICS BYTENLS_NCHAR_CONV_EXCP FALSENLS_NCHAR_CHARACTERSET AL16UTF16NLS_RDBMS_VERSION 11.2.0.1.0 20 rows selected
数据库字符集(NLS_CHARACTERSET):表中CHAR, VARCHAR2, CLOB, LONG等类型数据用数据库字符集
国家字符集(NLS_NCHAR_CHARACTERSET):表中NCHAR, NVARCHAR2, NCLOB等类型数据用国家字符集
其实大部分情况我们都是用的数据库字符集,国家字符集用的很少,仅作为一个补充
US7ASCII ----英文字符集(老外用)
zhs16cgb231280 ----进化后就是ZHS16GBK
AL32UTF8 -----数据库字符集(跨国企业)
AL16UTF16 ----国家字符集就用这个,不用别的
ZHS16GBK --- 数据库字符集(就中国人用)
utf8 ---进化后就是AL32UTF8
国家字符集就用AL16UTF16
如果你的数据库可能要涉及到多个国家的语言,那数据库字符集选 AL32UTF8
如果你的数据库就中国人用,那就选 ZHS16GBK,以为ZHS16GBK要比AL32UTF8字符编码占的空间少,性能更好
- 关于字符集中NLS_LANG参数show parameter nls 和v$nls_parameter 中的值不一样
- 关于字符和nls参数
- Vue 中的 v-if 和 v-show
- v-if 和v-show
- v-if 和 v-show
- NLS_LANG parameter setting
- 用show parameter显示Oracle隐含参数
- 用show parameter显示Oracle隐含参数
- element表格中的v-show
- VUE中的v-if与v-show
- V$PARAMETER和V$PARAMETER2, V$SYSTEM_PARAMETER和V$SYSTEM_PARAMETER2
- 关于sqlplus的show parameter问题
- v-if 和 v-show的区别
- v-if和v-show区别
- v-if和v-show的使用
- 关于利用SIM908 工程模式中的cellid lac 参数值进行基站定位(Sim900和sim908不一样,sim908没有直接读取基站定位信息的指令)
- 修改初始化参数 v$parameter与v$spparameter
- 第十四篇--V$PARAMETER&V$SYSTEM_PARAMETER (这两个视图列出的各参数项名称以及参数值)
- CME ERROR's
- 磁盘IOPS概念及IOPS的计算与测试
- git使用详细介绍
- 实现RTP协议的H.264视频传输系统
- 对某些字段(字段名里面一些字符随着月份儿改变的)进行处理
- 关于字符集中NLS_LANG参数show parameter nls 和v$nls_parameter 中的值不一样
- 消息映射的实现
- 提取单词
- 迈瑞/华为笔试准备
- 笔试中遇到的知识点小结(1)
- 低质量软件编程产生的成本价格细目表
- UITextField UITextView 字数限制
- VC 进程间通信
- SpringMVC源码剖析(一)- 从抽象和接口说起