Windows 上的 Oracle 用戶端範例配置

關於這項作業

範例環境:
  • Instant Client - Basic,位於 C:\instantclient_11_2 中,使用美式英文
  • Oracle 11.2,位於 Windows 系統的 C:\oracle\product\11.2.0\db_1 中,已安裝來支援國際資料
安裝有用戶端與 Build Forge 之系統的變數設定:
  • LD_LIBRARY_PATH 包括 C:\instantclient_11_2\
  • NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252
  • ORACLE_HOME=C:\instantclient_11_2\
  • ORA_NLS10=C:\oracle\ocommon\nls\admin\data
  • PATH 包括 C:\instantclient_11_2\
  • TNS_ADMIN=C:\oracle\product\11.2\db_1\network\admin

關於 Windows 系統上的 NLS_LANG

Windows 上的 Oracle 用戶端會使用 Windows 中的設定來執行本端字元對映。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\ACP

當用戶端傳送資料至伺服器時,字元會在伺服器的字元對映中傳送。

上述範例 NLS_LANG 設定對應於 ACP 設定 1252,這是 US Windows 的預設值。 如果是其他語言,請參考 Oracle InstantClient 文件以取得 NLX_LANG 正確的語言、語言環境,以及字元對映部分。 請務必檢查 Windows 系統上實際的 ACP 設定,並使設定的字元對映部分符合該設定。

其他語言的字元對映如下。請搭配正確的語言和語言環境使用這些對映,來建立 NLS_LANG 設定。

1250 EE8MSWIN1250
1251 CL8MSWIN1251
1252 WE8MSWIN1252
1253 EL8MSWIN1253
1254 TR8MSWIN1254
1255 IW8MSWIN1255
1256 AR8MSWIN1256
1257 BLT8MSWIN1257
1258 VN8MSWIN1258
874  TH8TISASCII
932  JA16SJIS
936  ZHS16GBK
949  KO16MSWIN949
950  ZHT16MSWIN950
註: 如果未正確設定字元對映, 您並不會收到警告,且一開始在行為或效能方面並沒有明顯的差異。用戶端會嘗試在記憶體中進行字元轉換。當記憶體不足且需要切換以執行轉換時, 用戶端與伺服器之間的通訊效能會大幅降低。

意見