问题描述:
64位win10机器,安装DBeaver准备连接到远程一台CentOS服务器上的DB2数据库。
使用DBeaver新建连接到远程DB2数据库。导入db2jcc4.jar之后提示:
[jcc][10402][11146][4.13.127] 无法将 Unicode 字符串转换为 Ebcdic 字符串, ERRORCODE=-4220,SQLSTATE=null
问题处理:
失败经历:
在网上搜索此报错编码,没有找到比较符合自身情况的。只好找了一些比较接近的。 有的文章说自己发生此情况后把计算机名改为英文就好了。我也仿照着做了一下,结果发现win10计算机名就是英文的。中间有一个短横符号,不知道算不算中文,就删掉了。修改计算机名还需要重启才生效。该来改去,最后改成了五个大写英文字母,这样完全可以肯定这就是英文名了。结果还是不行。
另外还有两个驱动包,是db2jcc.jar、db2jcc_license_cu.jar这两个,单独引入db2jcc.jar之后测试连接,提示需要licence还是另外一个什么单词来着,意思就是许可吧。于是又引入了db2jcc_license_cu.jar这个包。结果还是报之前 [jcc][10402][11146][4.13.127] 无法将 Unicode 字符串转换为 Ebcdic 字符串, ERRORCODE=-4220,SQLSTATE=null
这个错。
成功的解决方法:
我的另一台win10电脑上安装了DB2 Express-C软件。从里边找到了安装DB2之后自带的db2jcc4.jar包。发现这个jar包和之前引入后报错的jar包大小不一样。报错的jar包忘了是之前从哪里得到的了。DB2软件自带的这个更大一些。可能是新版本吧。总之使用了DB2软件安装后自带的这个包就可以正常连接了。尽管用这个包之后前两次连接是也提示了什么字符串无法装换的问题。但是忽略之后就好了。可以正常连接上。
其他说明:
开始时使用db2jcc4.jar连接报错。就想着到IBM官方下载个新的db2jcc4.jar。结果官网上一如既往的不好找东西。直接搜索db2jcc4.jar也只是搜到一些相关文章,没有下载地址。中间找到了一个开起来接近的下载地址,下了个v10.5fp10_jdbc_sqlj.tar.gz 好像也关系不大。 最后还是用了安装DB2 Express-C之后官方自带的。
这个东西不太好找。如果你安装了DB2软件,在你的电脑上应该可以找到官方自带的。我的是用filelocator搜文件名搜到的位置。
在 D:\IBM\SQLLIB\java
如果没有安装,可以下载我上传的这个好用的版本(在我这里解决了问题,不保证符合其他人的情况)。