1. 程式人生 > 實用技巧 >dbeaver連線Oracle中文亂碼的解決方案--druid

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/