Oracle11g字元亂碼解決
Oracle11g字元亂碼解決
1. 檢視linux支援語言
# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
2. 建立例項選擇AL32UTF8
3. 三層NLS體系
任何一個會話session在連線入資料庫之後,都會面對三層NLS引數體系,分別為:Database、Instance和Session。
ü Database Level NLS Parameter:資料庫層面的NLS引數是在資料庫建立的時候確定的一系列的引數。在建立資料庫的時候,我們都可以透過OUI或者responseFile進行配置。大部分Database Level NLS Parameter都是不可以改變,或者不能輕易改變的,如CharacterSet;
ü Instance Level NLS Parameter:在資料庫執行過程中,一些NLS引數是透過Spfile/Pfile引數檔案進行配置,並且可以對Database Level NLS進行一定的覆蓋修改。如果Instance Level與Database Level的發生衝突,以Instance Level覆蓋Database Level的配置;
ü Session Level NLS Parameter:這個層面是和使用者連線效果最直接的層面。使用者使用的NLS引數很多都是取到這個層面的引數。Session Level Parameter來自客戶端配置內容,主要是透過一系列的環境變數來確定。Session Level的Parameter是可以覆蓋Instance Level的引數的;
4. Database Level NLS Parameter
Database level引數是三層體系中最底層,這個層面的引數取值和Oracle資料庫建立時的配置選項密切相關。
SQL> select * from nls_database_parameters;
PARAMETER VALUE
--------------------------------------------- -------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
PARAMETER VALUE
--------------------------------------------- -------------------------
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.3.0
從Oracle官方推薦的角度,我們設定AL32UTF8字符集作為資料庫字符集
5. Instance level NLS Parameter
Instance引數主要來自於引數檔案SPFILE/PFILE。我們可以透過nls_instance_parameters來檢視這個層面的引數配置
SQL> select * from nls_instance_parameters;
PARAMETER VALUE
--------------------------------------------- -------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
通常我們不會在引數檔案層面進行NLS引數配置,保持Database Level的預設配置就可以了。
6. Session Level NLS Parameter
Session Level的NLS引數是和使用者最直接互動的部分。我們可以透過nls_session_parameters檢視檢視到這個內容
SQL> select * from nls_session_parameters;
PARAMETER VALUE
--------------------------------------------- -------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
PARAMETER VALUE
--------------------------------------------- -------------------------
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
session level的引數是影響最終我們看到NLS結果的控制因素。Session level的NLS引數來自客戶端配置。對Windows而言,就是我們登錄檔中關於NLS_LANG等一系列的環境變數。對Unix/Linux而言,就是我們配置在.bash_profile檔案中定義的相應內容。
7. 配置bash_profile檔案
[oracle@oracle ~]$ cat .bash_profile
export NLS_LANG=american_america.AL32UTF8
8. 重啟例項
9. 建立新表,帶中午內容
10. 查詢
SQL> select * from T_DEVICE;
DEVICEID TYPEID DEVICENAME DEVICEPOS
---------- ---------- -------------------- --------------------
DEVICEREGION I STATIONID
-------------------- - ----------
2 2 雨監測1 K1508+414
1 1
4 2 雨監測2 K1512+544
1 2
6 2 雨監測2 K1517+809
中文正確顯示
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26217983/viewspace-1578408/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle字元亂碼問題的解決Oracle字元
- 中文字元亂碼的解決字元
- 生僻字顯示?的字元亂碼解決字元
- 解決Oracle11g中的索引名字亂碼問題Oracle索引
- linux下字元介面下會出現亂碼解決方法Linux字元
- 空格在程式碼中變成其他字元或者亂碼問題解決方法字元
- RHEL中文亂碼解決
- HttpClient 解決中文亂碼HTTPclient
- ORACLE亂碼解決方案Oracle
- Java亂碼解決方案Java
- putty亂碼解決方法
- MySQL解決中文亂碼MySql
- Oracle Sql Loader中文字元匯入亂碼的解決方案OracleSQL字元
- 關於Oracle字元亂碼?Oracle字元
- oracle中匯入dmp字元亂碼分析和解決方案Oracle字元
- Confluence亂碼解決
- request/response解決中文亂碼
- eclipse中文亂碼解決Eclipse
- myeclipse解決中文亂碼Eclipse
- 資料庫亂碼解決資料庫
- 解決SSH亂碼問題
- 解決Linux中文亂碼Linux
- jsp亂碼解決大全JS
- ROS中解決中文亂碼ROS
- 解決中文亂碼問題
- Linux下修改MySQL資料庫字元編碼為UTF-8解決中文亂碼LinuxMySql資料庫字元
- flashfxp 亂碼,2種辦法解決flashfxp 亂碼問題
- centos vim亂碼怎麼解決?CentOS
- MySql中文亂碼問題解決MySql
- Jmeter 解決中文亂碼問題JMeter
- 解決 SecureCRT 和 SecureFX 中文亂碼Securecrt
- Java 解決中文亂碼問題Java
- RDSSQLSERVER解決中文亂碼問題SQLServer
- Windows下Clion中文亂碼解決Windows
- 解決GAT首頁亂碼Bug
- 徹底解決Oracle中文亂碼Oracle
- 解決MySQL中文亂碼問題MySql
- Node.js 中文亂碼解決Node.js