此方法在其它版系統也可以解決
win10-64
plsql
oracle 11g綠色版客戶端
錯誤現象:
因為oracle用的是綠色版,無法設置注冊表,嘗試以下方法。
解決方法:
1、在plsql中查詢oracle服務端默認語言
select * from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE' or t.PARAMETER ='NLS_CHARACTERSET';
-----------------------------------------------------------
select * from nls_session_parameters;
-----------------------------------------------------------
select * from nls_database_parameters;
這里的NLS_LANGUAGE=AMERICAN不會影響中文顯示
-------------------------------------------------------------
常用語言字符查詢SQL
select * from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE' or t.PARAMETER ='NLS_CHARACTERSET'; select * from nls_session_parameters; select * from nls_database_parameters; select * from nls_instance_parameters;
2、在PLSQL Developer目錄下新建一bat文件 ,內容如下:
@echo off
set path=D:\oracle\product\instantclient_11_2
set ORACLE_HOME=D:\oracle\product\instantclient_11_2
set TNS_ADMIN=D:\oracle\product\instantclient_11_2
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
start plsqldev.exe
運行bat文件時,打開plsql再次查詢數據時正常。
但是遇到問題,從plsqldev.exe打開plsql時查詢再次出現亂碼問題。
分析:執行bat文件啟動plsql時重新設置了數據庫字符集。
最終解決方法:將bat文件中的設置全部添加到計算機的“系統變量”中。
驗證
將上面bat文件中的設置添加到“系統變量”后,重新啟動plsql查詢出中文顯示正常。
注意:bat文件中set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK與在plsql中查詢oracle服務端默認語言是否一致。