最近學(xué)習(xí)SSM項(xiàng)目開發(fā),用到oracle數(shù)據(jù)庫,使用管理軟件PL/sql developer往數(shù)據(jù)庫表中插入數(shù)據(jù)時(shí)記錄亂碼。
結(jié)果如下:
可以看到中文數(shù)據(jù)都亂碼成了???????問號(hào),
看了網(wǎng)上各位大佬的解決辦法,說是由于oracle服務(wù)器端字符編碼 和 Oracle 客戶端字符編碼不一致引起的。
(但是我的oracle服務(wù)器端 和 Oracle 客戶端字符編碼是一樣的,這就很納悶了,但同樣用了以下解決辦法,搞定?。。。?/p>
第一步:
登錄PL/sql developer,檢查Oracle服務(wù)器端字符編碼,用
select userenv('language') from dual;
得到以下結(jié)果:
結(jié)果:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
第二步:
查看Oracle 客戶端字符編碼,用
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)問題解決!?。?/p>
補(bǔ)充2:因?yàn)槭怯胕dea做開發(fā),所以是直接用idea中database連接數(shù)據(jù)庫,然后重新建表,插入的數(shù)據(jù),
直接用PL/Sql developer沒試過,應(yīng)該也可以。
到此這篇關(guān)于解決pl/sql developer中數(shù)據(jù)庫插入數(shù)據(jù)亂碼問題的文章就介紹到這了,更多相關(guān)pl/sql 插入數(shù)據(jù)亂碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- PL/SQL Developer過期的兩種解決方法
- 詳解PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫
- 使用PL/SQL Developer連接Oracle數(shù)據(jù)庫的方法圖解
- 解析PL/SQL Developer導(dǎo)入導(dǎo)出數(shù)據(jù)庫的方法以及說明
- PL/SQL DEVELOPER 使用的一些技巧
- Oracle中在pl/sql developer修改表的2種方法