最近學(xué)習(xí)SSM項(xiàng)目開發(fā),用到oracle數(shù)據(jù)庫(kù),使用管理軟件PL/sql developer往數(shù)據(jù)庫(kù)表中插入數(shù)據(jù)時(shí)記錄亂碼。
結(jié)果如下:
可以看到中文數(shù)據(jù)都亂碼成了???????問號(hào),
看了網(wǎng)上各位大佬的解決辦法,說是由于oracle服務(wù)器端字符編碼 和 Oracle 客戶端字符編碼不一致引起的。
(但是我的oracle服務(wù)器端 和 Oracle 客戶端字符編碼是一樣的,這就很納悶了,但同樣用了以下解決辦法,搞定!!!)
第一步:
登錄PL/sql developer,檢查Oracle服務(wù)器端字符編碼,用
1
|
select userenv( 'language' ) from dual; |
得到以下結(jié)果:
結(jié)果:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
第二步:
查看Oracle 客戶端字符編碼,用
1
|
select * from V$NLS_PARAMETERS; |
得到以下結(jié)果:
可以看到我的oracle服務(wù)器端 和 Oracle 客戶端字符編碼是一樣的,沒關(guān)系繼續(xù)往下看
第三步:
在windows中創(chuàng) 建一個(gè)名為“NLS_LANG”的系統(tǒng)環(huán)境變量,設(shè)置其值為“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,跟oracle服務(wù)器端字符編碼一致,然后重新啟動(dòng) pl/sql developer
即可解決亂碼問題!!!
補(bǔ)充1:(問題解決可忽略以下內(nèi)容)
跟我有同樣問題的同學(xué)完成上面的步驟后,重新登錄PL/Sql developer數(shù)據(jù)還是顯示亂碼。
然后的解決辦法是:
把表刪除,注意是刪表,而不是單單刪除表中數(shù)據(jù),
然后重新建表,重新插入數(shù)據(jù),發(fā)現(xiàn)問題解決!!!
補(bǔ)充2:因?yàn)槭怯胕dea做開發(fā),所以是直接用idea中database連接數(shù)據(jù)庫(kù),然后重新建表,插入的數(shù)據(jù),
直接用PL/Sql developer沒試過,應(yīng)該也可以。
到此這篇關(guān)于解決pl/sql developer中數(shù)據(jù)庫(kù)插入數(shù)據(jù)亂碼問題的文章就介紹到這了,更多相關(guān)pl/sql 插入數(shù)據(jù)亂碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
原文鏈接:https://www.cnblogs.com/leadlrc/p/13928820.html