教你plsql亂碼怎麼解決「plsql執行sql腳本出現亂碼」

概述

在用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 可以分別查出字符集各組成部分的值

PL/SQL中文亂碼解決——資料庫字符集和客戶端字符集不同的解決辦法

2、伺服器端結果: AMERICAN_AMERICA.ZHS16GBK

或者用 select userenv(『language』) from dual 可以整體查出。

PL/SQL中文亂碼解決——資料庫字符集和客戶端字符集不同的解決辦法

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

PL/SQL中文亂碼解決——資料庫字符集和客戶端字符集不同的解決辦法

3、修改客戶端的字符集

客戶端的字符集要求與伺服器一致,才能正確顯示資料庫的非Ascii字元。

如果不一致,就得修改客戶端的字符集,修改為同server端相同的字符集。

在這裡我直接新增環境變數NLS_LANG,設置為AMERICAN_AMERICA.ZHS16GBK

PL/SQL中文亂碼解決——資料庫字符集和客戶端字符集不同的解決辦法

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

PL/SQL中文亂碼解決——資料庫字符集和客戶端字符集不同的解決辦法

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-22 15:07
下一篇 2024-12-22 15:07

相關推薦

發表回復

登錄後才能評論