概述
在用PLSQL登錄oracle資料庫時可能遇到報錯如下:
資料庫字符集(ZHS16GBK)和客戶端字符集(2%)是不同的,字符集轉化可能會造成不可預期的後果 不管錯誤信息中你的資料庫字符集是什麼,都是由於資料庫服務端和你的客戶端字符集不統一造成的。
NLS_LANG參數
影響Oracle資料庫字符集最重要的參數是NLS_LANG參數。
它的格式如下: NLS_LANG =
language_territory.charset
它有三個組成部分(語言、地域和字符集),每個成分控制了NLS子集的特性。
其中:
1. Language: 指定伺服器消息的語言, 影響提示信息是中文還是英文 2. Territory: 指定伺服器的日期和數字格式, 3. Charset: 指定字符集。
我電腦是
:AMERICAN_AMERICA.ZHS16GBK
可以通過以下方法解決:
1. 查詢資料庫服務端的字符集
select * from nls_database_parameters 可以分別查出字符集各組成部分的值

2、伺服器端結果: AMERICAN_AMERICA.ZHS16GBK
或者用 select userenv(『language』) from dual 可以整體查出。

也可以用 select * from nls_instance_parameters 查看你客戶端的字符集

3、修改客戶端的字符集
客戶端的字符集要求與伺服器一致,才能正確顯示資料庫的非Ascii字元。
如果不一致,就得修改客戶端的字符集,修改為同server端相同的字符集。
在這裡我直接新增環境變數NLS_LANG,設置為AMERICAN_AMERICA.ZHS16GBK

—查詢sql,中文已經不亂碼了。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/284433.html