1. 程式人生 > >【Oracle】——pl/sql中文亂碼,顯示“?”

【Oracle】——pl/sql中文亂碼,顯示“?”

前提 

    最近的專案都是Oracle,雖然小編對oracle資料庫一直是一竅不懂,但是要去學習啊!也是剛剛開始學習使用,問題就不斷啊。就說這個最有可能遇到的亂碼的問題,第一反應,編碼格式的問題!

    可就是這個常見的問題,小編也是花費了好久的時間啊。其中最神奇的是解決了全部亂碼問題,剩下個別漢字亂碼,這個可不能將就啊,畢竟專案是不能將就的。

過程

    一般是因為剛安裝的oracle資料庫不識別中文,我是使用PL/SQL來操作資料庫的,當然可以直接在dos中操作。注意:小編在這提示一下,使用工具亂碼的時候,一定要區分是資料庫中儲存的是亂碼,還是因為使用工具而造成顯示亂碼!

檢視Oracle編碼格式

   首先登入oracle使用者,連線到sysdba,先檢視oracle中的編碼格式是不是支援中文GBK或UTF-8,檢視語句

select userenv('language') from dual
    如果發現不支援,下面小編的語句就發揮了作用!

步驟一

    修改oracle資料庫編碼格式

SHUTDOWN IMMEDIATE; 
STARTUP MOUNT EXCLUSIVE; 
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE NATIONAL CHARACTER SET ZHS16GBK; 
SHUTDOWN immediate;
startup;
    建議執行完改語句就把資料重新匯入一下,查詢一下,判斷是否為亂碼。

步驟二

    如果發現還是亂碼,則執行下面步驟,開啟登錄檔,Ctrl+R,輸入regedit,HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB12Home1\NLS_LANG修改為:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,然後可以重新嘗試一下,判斷資料是否還亂碼。

步驟三

    如果還是不行!!!沒事小編還有一招,就是設定環境變數,計算機\屬性\高階系統設定\環境變數\系統變數\新建——NLS_LANG

                 

    再重新嘗試一下,應該就解決了吧。如果還是不行,恭喜,你又可以去創造了!!!那將是你最寶貴的機會,要珍惜!

總結

    覺得快失去耐心的時候多堅持一下,就在這個時候問題完美解決!