最近學習SSM項目開發(fā),用到oracle數(shù)據(jù)庫,使用管理軟件PL/sql developer往數(shù)據(jù)庫表中插入數(shù)據(jù)時記錄亂碼。

結(jié)果如下:
可以看到中文數(shù)據(jù)都亂碼成了???????問號,

看了網(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) 建一個名為“NLS_LANG”的系統(tǒng)環(huán)境變量,設(shè)置其值為“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,跟oracle服務(wù)器端字符編碼一致,然后重新啟動 pl/sql developer

即可解決亂碼問題!?。?/p>

補充1:(問題解決可忽略以下內(nèi)容)
跟我有同樣問題的同學完成上面的步驟后,重新登錄PL/Sql developer數(shù)據(jù)還是顯示亂碼。
然后的解決辦法是:
把表刪除,注意是刪表,而不是單單刪除表中數(shù)據(jù),
然后重新建表,重新插入數(shù)據(jù),發(fā)現(xiàn)問題解決?。。?/p>
補充2:因為是用idea做開發(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- PL/SQL Developer過期的兩種解決方法
- 詳解PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫
- 使用PL/SQL Developer連接Oracle數(shù)據(jù)庫的方法圖解
- 解析PL/SQL Developer導入導出數(shù)據(jù)庫的方法以及說明
- PL/SQL DEVELOPER 使用的一些技巧
- Oracle中在pl/sql developer修改表的2種方法