客戶端字符集
這部分是屬於oracle全球化支援的內容,詳細瞭解可以參考文件
首先談一下資料庫字符集,我們用dbca建庫的時,會讓你選擇資料庫字符集,預設的就是基於作業系統的語言設定:
[oracle@localhost ~]$ echo $LANG;
zh_CN.UTF-8
SQL> select userenv('language') from dual
2 ;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8
首先談一下資料庫字符集,我們用dbca建庫的時,會讓你選擇資料庫字符集,預設的就是基於作業系統的語言設定:
[oracle@localhost ~]$ echo $LANG;
zh_CN.UTF-8
2 ;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8
從oracle啟動的alert日誌裡也可以看出資料庫字符集:
Database Characterset is AL32UTF8
從檢視 nls_database_parameters也可以看出
當然我們可以修改資料庫字符集(但有限制。不建議修改):
只有新的字符集是當前字符集的超集時才能修改資料庫字符集,例如UTF8是US7ASCII的超集,修改資料庫字符集可使用ALTER DATABASE CHARACTER SET UTF8
客戶端字符集環境
select * from nls_instance_parameters
其來源於v$parameter,表示客戶端的字符集的設定,可能是引數檔案,環境變數或者是登錄檔
會話字符集環境
select * from nls_session_parameters
來源於v$nls_parameters,表示會話自己的設定,可能是會話的環境變數或者是alter session完成,session會話裡設定的字符集只是在此session裡有效,session結束後,就失效了。如果會話沒有特殊的設定,將與nls_instance_parameters一致。
客戶端的字符集要求與伺服器一致,才能正確顯示資料庫的非Ascii字元。如果多個設定存在的時候,NLS作用優先順序別:字元設定函式 > alter session > 環境變數或登錄檔 > 引數檔案 > 資料庫預設引數
字符集要求一致,但是語言設定卻可以不同,語言設定建議用英文。如字符集是zhs16gbk,則nls_lang可以是American_America.zhs16gbk。
下面著重講解客戶端字符集設定:
linux下:
[oracle@localhost ~]$ export LANG=zh_CN.UTF-8
Windows環境:
登錄檔:
regedit =>HKEY_LOCAL_MACHINE =>SOFTWARE =>ORACLE-HOME
NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
NLS_LANG可以分為三部分:
language:語言 SIMPLIFIED CHINESE
territory:地區 CHINA
character set :字符集 ZHS16GBK
NLS_LANG=_.
各個引數所帶來的影響:
Language: 顯示oracle訊息,校驗,日期命名
Territory:指定預設日期、數字、貨幣等格式
Client character set:指定客戶端將使用的字符集
select * from v$nls_valid_values 這個檢視很有用,你可以查到oracle支援所有的上面的三個引數
Database Characterset is AL32UTF8
從檢視 nls_database_parameters也可以看出
當然我們可以修改資料庫字符集(但有限制。不建議修改):
只有新的字符集是當前字符集的超集時才能修改資料庫字符集,例如UTF8是US7ASCII的超集,修改資料庫字符集可使用ALTER DATABASE CHARACTER SET UTF8
客戶端字符集環境
select * from nls_instance_parameters
其來源於v$parameter,表示客戶端的字符集的設定,可能是引數檔案,環境變數或者是登錄檔
會話字符集環境
select * from nls_session_parameters
來源於v$nls_parameters,表示會話自己的設定,可能是會話的環境變數或者是alter session完成,session會話裡設定的字符集只是在此session裡有效,session結束後,就失效了。如果會話沒有特殊的設定,將與nls_instance_parameters一致。
客戶端的字符集要求與伺服器一致,才能正確顯示資料庫的非Ascii字元。如果多個設定存在的時候,NLS作用優先順序別:字元設定函式 > alter session > 環境變數或登錄檔 > 引數檔案 > 資料庫預設引數
字符集要求一致,但是語言設定卻可以不同,語言設定建議用英文。如字符集是zhs16gbk,則nls_lang可以是American_America.zhs16gbk。
下面著重講解客戶端字符集設定:
linux下:
[oracle@localhost ~]$ export LANG=zh_CN.UTF-8
登錄檔:
regedit =>HKEY_LOCAL_MACHINE =>SOFTWARE =>ORACLE-HOME
NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
NLS_LANG可以分為三部分:
language:語言 SIMPLIFIED CHINESE
territory:地區 CHINA
character set :字符集 ZHS16GBK
NLS_LANG=
各個引數所帶來的影響:
Language: 顯示oracle訊息,校驗,日期命名
Territory:指定預設日期、數字、貨幣等格式
Client character set:指定客戶端將使用的字符集
select * from v$nls_valid_values 這個檢視很有用,你可以查到oracle支援所有的上面的三個引數
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29876893/viewspace-1627370/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 設定ORACLE客戶端字符集Oracle客戶端
- Oracle exp 設定客戶端字符集Oracle客戶端
- MySQL 5.5客戶端字符集相關引數MySql客戶端
- 關於客戶端字符集與亂碼的困擾客戶端
- psycopg2 修改資料庫客戶端字符集資料庫客戶端
- 【字符集】“客戶終端字符集”、“NLS_LANG”環境變數以及“資料庫字符集”變數資料庫
- dubbo客戶端客戶端
- Pulsar客戶端客戶端
- mqtt 客戶端MQQT客戶端
- 客戶端,服務端客戶端服務端
- 服務端,客戶端服務端客戶端
- Nacos - 客戶端心跳續約及客戶端總結客戶端
- 檢視較小dmp檔案,匯出時客戶端的字符集客戶端
- 物理DataGuard客戶端無縫切換--客戶端TAF 配置客戶端
- [Redis 客戶端整合] Java 中常用Redis客戶端比較Redis客戶端Java
- 客戶端加解密客戶端解密
- Zookeeper 客戶端 API客戶端API
- java websocket 客戶端JavaWeb客戶端
- 客戶端筆記客戶端筆記
- Redis-客戶端Redis客戶端
- redis客戶端管理Redis客戶端
- CXF--客戶端客戶端
- 中斷客戶端客戶端
- github客戶端使用Github客戶端
- ftp客戶端,ftp客戶端軟體具體怎麼使用?FTP客戶端
- 《samba搭建win客戶端和linux客戶端的區別》Samba客戶端Linux
- 關於Oracle,作業系統,客戶端字符集的最佳設定(zt)Oracle作業系統客戶端
- IE客戶客戶端程式開發的利器Bindows客戶端
- VNC客戶端推薦,Windows系統下VNC客戶端推薦VNC客戶端Windows
- VNC客戶端是Windows,VNC客戶端是Windows如何進行操作VNC客戶端Windows
- bilibili mac客戶端 嗶哩嗶哩 b站mac客戶端Mac客戶端
- Winform客戶端引用WCF客戶端後,部分類無法正常使用ORM客戶端
- FTP 客戶端使用教程FTP客戶端
- 微軟ToDo客戶端(macOS)微軟客戶端Mac
- Oracle 客戶端安裝Oracle客戶端
- MySQL 客戶端安裝MySql客戶端
- 開發JAXR客戶端客戶端
- Mac版YouTube客戶端Mac客戶端