設置步驟
- 菜單 Tools → Preferences。
- 左側選 Files。
- 右側 Format 區域,勾選 Autodetect (ANSI or UTF8)。
- 點 OK 重新打開查詢窗口。
環境變量檢查
- 客戶端 `NLS_LANG`:`AMERICAN_AMERICA.ZHS16GBK` (簡體中文) 或 `AL32UTF8` (UTF-8),需與數據庫字符集一致。
- 注冊表 `HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_\NLS_LANG` 同步修改。
數據庫字符集查看
SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER LIKE '%CHARACTERSET%';
-- NLS_CHARACTERSET = AL32UTF8 / ZHS16GBK
原理
PL/SQL 讀取數據時按 `NLS_LANG` 解碼;若與數據庫存儲編碼不一致,中文顯示亂碼。Autodetect 讓 PL/SQL 嘗試自動識別編碼。