解決plsql顯示問號(???)問題


 

如何查看Oracle數據庫的字符編碼

1、查詢Oracle Server端的字符集:
有很多種方法可以查出oracle server端的字符集,比較直觀的查詢方法是以下這種:
SQL>select userenv(‘language’) from dual;
結果如下:AMERICAN _ AMERICA. ZHS16GBK。
2、查詢dmp文件的字符集:
用Oracle的exp工具導出的dmp文件也包含了字符集信息,dmp文件的第2和第3個字節記錄了dmp文件的字符集。如果dmp文件不大,比如只有幾M或幾十M,可以用UltraEdit打開(16進制方式),看第2第3個字節的內容,如0354,然后用以下SQL查出它對應的字符集:
SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;
ZHS16GBK
3、查詢Oracle client端的字符集:
這個比較簡單。在Windows平台下,就是注冊表里面相應OracleHome的NLS_LANG。還可以在Dos窗口里面自己設置,比如:
set nls_lang=AMERICAN_AMERICA.ZHS16GBK
如果檢查的結果發現Server端與Client端字符集不一致,請統一修改為同Server端相同的字符集。

 

 

 

 

原因:本機沒有配置數據庫字符集環境變量,或是與數據庫字符集不一致。

步驟一:執行在plsql中執行 select userenv('language') from dual; 語句來查看本機的字符集,或是執行 select * from V$NLS_PARAMETERS; 語句。兩者的區別是第一種查看到的是拼接好的一條字符集數據,第二種是數據庫詳細配置參數有多條數據需要將 第一行,第二行,第九行的value數據以 第一行_第二行.第九行的格式拼接起來,我的拼接好好后是AMERICAN_AMERICA.ZHS16GBK

步驟二:在環境變量中添加兩條配置信息,鼠標右鍵我的電腦(計算機/此電腦)等圖標,選擇屬性,選擇高級系統設置,選擇高級選項卡的環境變量,在系統變量里新建兩條配置:

1、LANG=zh_CN.GBK(GBK是這樣形式的,不同編碼這里的value值需要跟着改變)

2、NLS_LANG=AMERICAN_AMERICA.ZHS16GBK(這個value值就是我們步驟一中拼接好的那個值)

步驟三:這步也是至關重要的,到這里我們就配置好了,很多的博客與帖子都說重啟plsql即可,但是我的並沒有生效,需要重啟電腦 生效,很重要。

 

Oracle字符集的查看查詢和Oracle字符集的設置修改

https://www.cnblogs.com/perilla/p/3873653.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM