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

https://github.com/alibaba/druid/

https://repo1.maven.org/maven2/com/alibaba/druid/1.1.23/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章