Google Code Prettify

2016年2月11日 星期四

Oracle 亂碼1/2

在 Oracle 中明明 insert 的是中文,select 出來卻是亂碼,為什麼? 通常的是因 client 端和 server 端的編碼不一致造成的! 解決的辦法很簡單:
  1. 在 client 和 server 都執行如下指令
  2. select userenv('language') from dual;
    這樣可以查出編碼 (charset),得到的結果可能如下:
     TRADITIONAL CHINESE_TAIWAN.AL32UTF8
    重點在後面的編碼 (紅色部份),確認兩邊不一致,那麼就確定是編碼不一致造成亂碼的!
  3. 在 client 新增一個環境變數 NLS_LANG,值設定為 server 端查到的 charset,例如:
  4. NLS_LANG = AL32UTF8
    重啟 client 端的軟體 (或許是 toad or sql developer),再查詢一次,應該已經可以正常顯示。

沒有留言:

張貼留言