(完美解決)PL/SQL顯示亂碼-無法進行中文條件查詢解決
阿新 • • 發佈:2019-02-19
PLSQL亂碼問題皆是ORACLE服務端字符集編碼與PLSQL端字符集編碼不一致引起。
類似亂碼問題都可以從編碼是否一致上面去考慮。
解決:
1. 查詢Oracle服務端字符集編碼,獲取NLS_CHARACTERSET欄位值:
執行
sql程式碼
select * from v$nls_parameters;
儲存查詢到的值,如:NLS_CHARACTERSET = AL32UTF8
2. 查詢Oracle服務端語言資訊:
執行
sql程式碼
SELECT 'AMERICAN_AMERICA.' || PROPERTY_VALUE
FROM DATABASE_PROPERTIES;
儲存查詢到的值,如:AMERICAN_AMERICA.AL32UTF8
3. 設定本地環境變數。(PLSQL優先從環境變數中獲取屬性)
右擊 我的電腦 -> 屬性 -> 告警系統屬性 -> 高階 -> 環境變數 -> 系統變數欄
新增如下兩條記錄:
NLS_CHARACTERSET = AL32UTF8
NLS_LANG = AMERICAN_AMERICA.AL32UTF8
4. 重啟PLSQL,OK。
類似亂碼問題都可以從編碼是否一致上面去考慮。
解決:
1. 查詢Oracle服務端字符集編碼,獲取NLS_CHARACTERSET欄位值:
執行
sql程式碼
select * from v$nls_parameters;
儲存查詢到的值,如:NLS_CHARACTERSET = AL32UTF8
2. 查詢Oracle服務端語言資訊:
執行
sql程式碼
SELECT 'AMERICAN_AMERICA.' || PROPERTY_VALUE
FROM DATABASE_PROPERTIES;
儲存查詢到的值,如:AMERICAN_AMERICA.AL32UTF8
3. 設定本地環境變數。(PLSQL優先從環境變數中獲取屬性)
右擊 我的電腦 -> 屬性 -> 告警系統屬性 -> 高階 -> 環境變數 -> 系統變數欄
新增如下兩條記錄:
NLS_CHARACTERSET = AL32UTF8
NLS_LANG = AMERICAN_AMERICA.AL32UTF8
4. 重啟PLSQL,OK。