21

dbeaver连接Oracle中文乱码的解决方案--druid

 4 years ago
source link: http://www.cnblogs.com/downmoon/p/13329324.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

前言:

dbeaver是一个优秀的通用数据库客户端连接工具,最重要的是社区版一直是开源免费。但是在连接服务端的WE8ISO8859P1字符集时,表中的数据中文查询出来显示为乱码,无论怎么修改参数都没用。

zaMr63A.png!web

方法一:

在PL/SQL的前面设置字符集:

set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
startup plsql.exe

INJJRz6.png!web

方法最佳,但PL/SQL 毕竟是收费的。

方法二:

在sqlplus命令前设置字符集:

set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

jeyARb6.png!web

方法三:使用druid,参考 https://my.oschina.net/joshuazhan/blog/122591

步骤:

1、下载druid,开源免费,“阿里巴巴计算平台事业部出品,为监控而生的数据库连接池”。

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

22MfEbm.png!web

2、将下载的 druid-1.1.23.jar 、ojdbcXX.jar加入到驱动。本人偷懒直接用dbeaver下载的 ojdbc8-12.2.0.1.jar

iYvqq27.png!web

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

FVNvAjU.png!web

ErqUJva.png!web

3、测试连接,成功!

6r2aumb.png!web

4、在SQL中查询,结果已正常显示中文。

BFFNZb2.png!web

5、周围显示的红色代表是在生产环境,绿色的代表开发环境,以提醒操作人员。

ZR3QRzA.png!web

小结: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/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK