原因:
PLSQL亂碼問題皆是ORACLE服務端字符集編碼與PLSQL端字符集編碼不一致引起。類似亂碼問題都可以從編碼是否一致上面去考慮。
解決:
1. 查詢Oracle服務端字符集編碼,獲取NLS_CHARACTERSET字段值:
select * from v$nls_parameters
保存查詢到的值,如:NLS_CHARACTERSET = AL32UTF8
2. 查詢Oracle服務端語言信息:
SELECT 'AMERICAN_AMERICA.' || PROPERTY_VALUE FROM DATABASE_PROPERTIES
保存查詢到的值,如:AMERICAN_AMERICA.AL32UTF8
3. 設置本地環境變量。(PLSQL優先從環境變量中獲取屬性)
右擊 我的電腦 -> 屬性 -> 告警系統屬性 -> 高級 -> 環境變量 -> 系統變量欄
新增如下兩條記錄:
NLS_CHARACTERSET = AL32UTF8
NLS_LANG = AMERICAN_AMERICA.AL32UTF8
4. 重啓PLSQL,OK。