dbeaver連線Oracle中文亂碼的解決方案--druid
前言:
dbeaver是一個優秀的通用資料庫客戶端連線工具,最重要的是社群版一直是開源免費。但是在連線服務端的WE8ISO8859P1字符集時,表中的資料中文查詢出來顯示為亂碼,無論怎麼修改引數都沒用。
方法一:
在PL/SQL的前面設定字符集:
set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
startup plsql.exe
方法最佳,但PL/SQL 畢竟是收費的。
方法二:
在sqlplus命令前設定字符集:
set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
方法三:使用druid,參考https://my.oschina.net/joshuazhan/blog/122591
步驟:
1、下載druid,開源免費,“阿里巴巴計算平臺事業部出品,為監控而生的資料庫連線池”。
https://repo1.maven.org/maven2/com/alibaba/druid/1.1.23/
2、將下載的druid-1.1.23.jar、ojdbcXX.jar加入到驅動。本人偷懶直接用dbeaver下載的ojdbc8-12.2.0.1.jar
3、新增加一個驅動,如下:
類名:com.alibaba.druid.proxy.DruidDriver
驅動模板:jdbc:wrap-jdbc:filters=encoding:name=dbeaver:jdbc:oracle:thin:@{host}[:{port}]/{database}
連線引數:
clientEncoding:GBK
serverEncoding:ISO-8859-1
3、測試連線,成功!
4、在SQL中查詢,結果已正常顯示中文。
5、周圍顯示的紅色代表是在生產環境,綠色的代表開發環境,以提醒操作人員。
小結:druid沒有原生的jdbc驅動強大,但它確實解決了字符集不匹配的問題,也是一個很好的免費解決方案。如果預設沒有字符集不匹配的情況,直接用原生的Oracle驅動即可。
參考:
https://my.oschina.net/joshuazhan/blog/114194
https://my.oschina.net/joshuazhan/blog/122591