plsql中文亂碼(查詢顯示問號???)


 問題描述:

1、打開 plsql,執行 sql 語句,中文顯示亂碼:

---查詢表中記錄 select * from person;

 解決辦法:

1)查看服務器端編碼

        輸入 sql 語句: select userenv('language') from dual       -- 查看數據庫字符集

         我實際查到的結果為:AMERICAN_AMERICA.ZHS16GBK

2)執行 sql 語句 :select * from V$NLS_PARAMETERS    -- 查看本地字符集

查看第一行中PARAMETER項中為NLS_LANGUAGE 對應的VALUE項中是否和第一步得到的值一樣。如果不是,需要設置環境變量,否則PLSQL客戶端使用的編碼和服務器端編碼不一致,插入中文時就會出現亂碼.

 我實際查到的為AMERICAN

3)設置環境變量
計算機->屬性->高級系統設置->環境變量->新建
設置變量名:NLS_LANG,變量值:第1步查到的值,(這里的變量值需要與數據庫服務器相同 我的是    AMERICAN_AMERICA.ZHS16GBK

 4)重新打開 plsql,執行 sql 語句,問題解決

過程中遇到的問題:

    注:當完成以上4個步驟時,查詢原來的記錄還是問號????,只有新插入的記錄才會正常顯示。不知道這個怎么解決?

 

 



免責聲明!

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



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