1. 程式人生 > >關於字符集中NLS_LANG引數show parameter nls 和v$nls_parameter 中的值不一樣

關於字符集中NLS_LANG引數show parameter nls 和v$nls_parameter 中的值不一樣

今天下午,在測試庫上偶然發現:

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 CHINESE
NLS_TERRITORY                  CHINA
NLS_CURRENCY                   ?
NLS_ISO_CURRENCY               CHINA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               ZHS16GBK
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              SIMPLIFIED CHINESE
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              ?
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_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 一樣

今天下午,在測試庫上偶然發現: alter session set nls_language='american';   後 show parameter nls 這個nls_language引數竟然沒有變 執行:select * from v$nls_parameter

1.12 判斷串第一次出現的位子 串是否存在

clas [] pac println oid 判斷 main true int package Demo; public class Demo4 { public static void main(String[] args) { String str = "hello

串匹配的BF算法KMP算法學習

.html 意義 else 概念 下一個 org abc 關於 bf算法 引言:關於字符串 字符串(string):是由0或多個字符組成的有限序列。一般寫作`s = "123456..."`。s這裏是主串,其中的一部分就是子串。 其實,對於字符串大小關系不如是否相同重要。

cocos2d JS 函數類型相互轉換(串、整形、浮點形、布爾)

賦值 defined 基數 bject 布爾 ring 浮點型 謝謝 val 工作忙好些天了,近段時間抽點空分享一下自己學習JS的一點筆記心得做點記錄,大神勿噴,謝謝! p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0

android一些特殊(如:←↑→↓等箭頭符號)的Unicode碼

lin gb2312 ring clu itl app lan orien lam 在項目中,有時候在一些控件(如Button、TextView)中要添加一些符號,如下圖所示: 這個時候可以使用圖片的方式來顯示,不過這

[LeetCode] Minimum ASCII Delete Sum for Two Strings 兩個串的最小ASCII刪除

example ins 刪除 let urn etc clas ascii possible Given two strings s1, s2, find the lowest ASCII sum of deleted characters to make two

串中間的某段長度替換成固定的

pub 表示 字符串 rar obi 字符 客戶 [] for 今天經理讓把手機號的中間幾位替換為*,為了保護客戶隱私,剛開始一直想著是用字符串的截取啊、替換啊,發現不行,又去查api,看到了 toCharArray public char[] toCharArray()

java-String類的各串判斷(包括" "null的區別)

mos 大小 既然 main 引用數據類型 同時 ins emp gpo package com.day7.one; public class DemoString1 {   /**   * @param args   * 1.boolean equals(Objec

Python串的方法,查找替換

tro 範圍 com 取反 修改 整除 數據類型 替換字符 9.png Python數字整型 int 如:1 4 8浮點型 float 如:1.0 3.6 78.9長整型

編碼筆記:ASCII,Unicode UTF-8

evel IE 閑置 for 之一 問題: window bit tar 作者: 阮一峰 日期: 2007年10月28日 今天中午,我突然想搞清楚 Unicode 和 UTF-8 之間的關系,就開始查資料。 這個問題比我想象的復雜,午飯後一直看到晚上9點,才算初步搞清楚

(串的操作 for循環 while遍歷循環)

isdigit find 計數 capi 劉德華 序列 apc 負數 itl 1)字符串是什麽,和字符串的常用操作方法 1,什麽是字符串. 字符:是單一的文字符號, 字符串:是有序的字符序列,由" ‘ ‘‘‘ """引起來的內容就是字

輸入兩個很大的正數(用C串表示),輸出他們的乘積,將設考慮非法輸入。

十進制數 free pre class 兩個 int 字符數組 正數 轉換 1 #include<iostream> 2 #include<cassert> 3 void multiply(const char *a,const cha

采用短網址生成方法,生成一個唯一的短串。 然後保存到數據庫,與源數據一一對應,新的系統,從數據庫取到相應的數據 (轉)

hash parseint uid += 不用 裏的 我想 ger vrf /** * 短網址生成方法 * 這個方法會,生成四個短字符串,每一個字符串的長度為6 * 這個方法是從網上搜索的一個方法,但不知道出自何處了,稍微將key換了一下

Python學習筆記串操作之rjust()、ljust()icenter()方法對齊文本

字符串操作 int 圖片 方法 spa -c enter ice 第一個 隨筆記錄方便自己和同路人查閱。 #------------------------------------------------我是可恥的分割線--------------------------

C#串連接問題(包含破折號引號)

如何 圖片 png ram exp 分享圖片 而已 轉義 get 1.需求場景: 生成字符串如下:jsonStr.Append("\"SensorTypes\":"); 解決方法: string code = @"jsonStr.Append(""\""Sensor

[轉]編碼筆記:ASCII,Unicode UTF-8

中文編碼 new fff notepad absolut 歐洲 簡體中文 戰爭 遊記 本文非原創,轉載 ,原文地址 :http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 作者: 阮

request引數parameter屬性(Attribute)的區別

在JAVA WEB開發中經常遇到獲取請求引數的值和在request物件中set或者get屬性,初學者往往容易混淆,那麼二者之間關係到底如何呢?下面是個人的總結: 區別: 來源不同:   引數(parameter)是從客戶端(瀏覽器)中由使用者提供的,若是GET方法是從URL

[Swift]LeetCode712. 兩個串的最小ASCII刪除 | Minimum ASCII Delete Sum for Two Strings

runtime div dfs nop 等於 就是 abc ati 我們 Given two strings s1, s2, find the lowest ASCII sum of deleted characters to make two strings equal.

獲取textarea文本框所選光標位置索引,以及選中的文本;textarea高度自適應,隨著內容增加高度增加;獲取輸入框的光標位置

creat substring ons osi 內容 poi name range init 獲取textarea文本框所選字符光標位置索引,以及選中的文本值         $.fn.selection = function () {