【Oracle】——pl/sql中文亂碼,顯示“?”
阿新 • • 發佈:2019-01-10
前提
最近的專案都是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
再重新嘗試一下,應該就解決了吧。如果還是不行,恭喜,你又可以去創造了!!!那將是你最寶貴的機會,要珍惜!
總結
覺得快失去耐心的時候多堅持一下,就在這個時候問題完美解決!