今天在利用pl/sql developer 往oracle中匯入日文資料時,總是出現亂碼。我想肯定是客戶端和服務端的字元編碼
設定不一致導致的。上網google得知oralce字元編碼設定和查詢的一些方法,記錄如下:
1. nls_lang 引數組成
nls_lang引數由以下部分組成:
nls_lang=_.
nls_lang各部分含義如下:
language指定:
-oracle訊息使用的語言
-日期中月份和日顯示
territory指定
-貨幣和數字格式
-地區和計算星期及日期的習慣
characterset:
-控制客戶端應用程式使用的字符集
通常設定或者等於客戶端(如windows)**頁
或者對於unicode應用設定為utf8
在windows上檢視當前系統的**頁可以使用chcp命令:
e:\>chcp
活動的**頁: 936
2. 檢視 nls_lang 的方法
windows使用:
echo %nls_lang%
如:e:\>echo %nls_lang%
american_america.zhs16gbk
unix使用:
env|grep nls_lang
如:/opt/oracle>env|grep nls_lang
nls_lang=american_china.zhs16gbk
windows客戶端設定,可以在登錄檔中更改nls_lang,具體鍵值位於:
hkey_local_machine\software\oracle\homexx\
xx指存在多個oracle_home時系統編號。
3. 檢視資料庫當前字符集引數設定
select * from v$nls_parameters;
4. 檢視資料庫可用字符集引數設定
select * from v$nls_valid_values;
5. 客戶端 nls_lang 的設定方法
windows:
# 常用中文字符集
set nls_lang=simplified chinese_china.zhs16gbk
# 常用unicode字符集
set nls_lang=american_america.al32utf8
可以通過修改登錄檔鍵值永久設定
hkey_local_machine\software\oracle\homexx\nls_lang
unix:
# 常用unicode字符集
export nls_lang=american_america.al32utf8
# 常用中文字符集
export nls_lang="simplified chinese_china".zhs16gbk
可以編輯 bash_profile 檔案進行永久設定
vi .bash_profile
nls_lang="simplified chinese_china".zhs16gbk export nls_lang
# 使 bash_profile 設定生效
source .bash_profile
Oracle客戶端NLS LANG引數的設定詳解
我們知道,oracle客戶端語言支援可以通過nls lang引數的設定來完成,不同的系統平台上nls lang引數的設定會有所不同。本文我們首先介紹了nls lang引數的構成,然後介紹了oracle客戶端nls lang引數在windows平台和unix平台上的設定,現在我們開始介紹這一部分內容。...
oracle客戶端安裝
instantclient basic win32 10.2.0.3 20061115.zip 解壓instantclient basic win32 10.2.0.3 20061115.zip到d盤,全路徑為 d instantclient 10 2 設定環境變數 tns admin d inst...
oracle客戶端配置
在 oracle home network admin目錄下有一配置檔案tnsnames.ora,內容基本如下 test description address list address protocol tcp host 192.168.11.47 port 1521 connect data s...