ORACLE客戶端的字元編碼設定

2021-08-30 23:56:18 字數 1624 閱讀 5582

今天在利用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...