最近學(xué)習(xí)SSM項目開發(fā),用到oracle數(shù)據(jù)庫,使用管理軟件PL/sql developer往數(shù)據(jù)庫表中插入數(shù)據(jù)時記錄亂碼。
![](/d/20211018/b3da1eb7fd7c833c382f0eeaa9f766c2.gif)
結(jié)果如下:
可以看到中文數(shù)據(jù)都亂碼成了???????問號,
![](/d/20211018/5ca8c64ebbe4764323d16b84ec5489a7.gif)
看了網(wǎng)上各位大佬的解決辦法,說是由于oracle服務(wù)器端字符編碼 和 Oracle 客戶端字符編碼不一致引起的。
(但是我的oracle服務(wù)器端 和 Oracle 客戶端字符編碼是一樣的,這就很納悶了,但同樣用了以下解決辦法,搞定!?。。?/p>
第一步:
登錄PL/sql developer,檢查Oracle服務(wù)器端字符編碼,用
select userenv('language') from dual;
得到以下結(jié)果:
![](/d/20211018/9b4f8e1a256a85a24457dcd3512bdf17.gif)
結(jié)果:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
第二步:
查看Oracle 客戶端字符編碼,用
select * from V$NLS_PARAMETERS;
得到以下結(jié)果:
![](/d/20211018/8ed42341bba04b78d3c8dda41ffd3135.gif)
可以看到我的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
![](/d/20211018/a8569f8da7f0e76b5d5ad462e6027d30.gif)
即可解決亂碼問題!??!
![](/d/20211018/d539763949f1be05a1f4ed207473c1e6.gif)
補充1:(問題解決可忽略以下內(nèi)容)
跟我有同樣問題的同學(xué)完成上面的步驟后,重新登錄PL/Sql developer數(shù)據(jù)還是顯示亂碼。
然后的解決辦法是:
把表刪除,注意是刪表,而不是單單刪除表中數(shù)據(jù),
然后重新建表,重新插入數(shù)據(jù),發(fā)現(xiàn)問題解決?。?!
補充2:因為是用idea做開發(fā),所以是直接用idea中database連接數(shù)據(jù)庫,然后重新建表,插入的數(shù)據(jù),
直接用PL/Sql developer沒試過,應(yīng)該也可以。
![](/d/20211018/787651e54f0ee3b38f6cd94fd873c29f.gif)
到此這篇關(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導(dǎo)入導(dǎo)出數(shù)據(jù)庫的方法以及說明
- PL/SQL DEVELOPER 使用的一些技巧
- Oracle中在pl/sql developer修改表的2種方法