plsql字元集
① sqlplus運行出現中文亂碼怎麼解決
在用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 al 可以整體查出。
也可以用 select * from nls_instance_parameters 查看你客戶端的字元集
3、修改客戶端的字元集
客戶端的字元集要求與伺服器一致,才能正確顯示資料庫的非Ascii字元。
如果不一致,就得修改客戶端的字元集,修改為同server端相同的字元集。
在這里我直接新增環境變數NLS_LANG,設置為AMERICAN_AMERICA.ZHS16GBK
---查詢sql,中文已經不亂碼了
② 如何修改Oracle資料庫字元集
1、首先我們打開電腦桌面,同時按windows徽標鍵和R鍵,在彈出來的窗口裡輸入,regedit,點擊OK按鈕。
③ 如何設置PLSQL Developer 字元集
我安裝的是PLSQL Developer(版本7.1.4)綠色版,執行SQL發現彈出的錯誤提示對話框都是??表示,顯示不出正確的提示信息。後來才明白是跟伺服器的字元集不匹配的問題。方法如下:
1、查詢oracle server端的字元集。打開SQL Window輸入下面SQL查詢服務端的字元集。
select userenv('language') from al;
2、我的電腦中環境變數界面,在系統變數中新加:
變數名:NLS_LANG
變數值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
其中的變數值跟伺服器查詢到得一致即可。
好了可以正常工作了,每天進步一點點。。