首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 8i SQL*Plus Worksheet 中文亂碼問題根因分析與解決方案

     編輯:Oracle 資料庫基礎

問題現象

Oracle 8i 安裝選用簡體中文 (ZHS16GBK) 後,SQL*Plus Worksheet 介面與查詢結果皆顯示亂碼,但 SQL*Plus 字元介面正常。

根因分析

  1. 資料庫字元集正確:SELECT USERENV('LANGUAGE') FROM DUAL 回傳 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
  2. 用戶端 NLS_LANG 註冊表正確:AMERICAN_AMERICA.ZHS16GBK
  3. SQL*Plus 正常 → 非字元集設定問題
  4. 關鍵差異:8i 起大部分工具改為 Java 驅動。NLS_LANG 僅影響非 Java 程式 (如 SQL*Plus);Java 程式 (Worksheet) 讀取專屬設定檔。

解決方案

  1. 編輯 $ORACLE_HOME\SYSMAN\CONFIG\DBAAPSCFG.PROPERTIES
  2. 找到 # SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1,取消註解並修改為:
    SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
  3. Windows 另需修改 # SQLPLUS_SYSTEMROOT=C:\\WINNT40,取消註解並指向實際系統目錄 (如 D:\\WINNT),否則連線會報 ORA-12560 或 ORA-12545。
  4. 儲存檔案,重新啟動 Worksheet,中文顯示恢復正常。

注意:Unix 環境無需修改 SQLPLUS_SYSTEMROOT。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved