使用DmJdbc驱动自带的获取数据库小版本号方法报错问题记录

环境说明

数据库版本:DM V8 --03134283890-20220518-160920-10045 Pack6(DM V8 1-2-114)
Dmjdbc驱动版本:2-114版本及之前

问题触发的前提条件

1、使用的数据库版本为DM V8 1-2-114及以后的版本(2022年2月及以后)
2、使用的DmJdbc驱动版本为DM V8 1-2-114及以前的版本
3、程序代码中使用了DmJdbc驱动自带的获取小版本号的方法(获取大版本号的方法正常)
以上三个条件全部满足才会出现该问题。

报错信息

Java.lang.NumberFormatException:For input string:””

20220728085809

原因分析

从报错信息来看,数值格式化时,由于获取到空字符串,导致报错。
相关方法为dm.jdbc.driver.DmdbDatabaseMetaData.do_getDatabaseMinorVersion、getDatabaseMinorVersion,该方法为Dmjdbc驱动自带的获取数据库小版本号的相关方法。通过反编译Dmjdbc驱动包查看相关方法,该方法通过SQL语句到数据库中查询相关版本号信息然后进行处理返回。

通过简单的验证发现在使用DM V8 --03134283890-20220518-160920-10045 Pack6即DM V8 1-2-114版本数据库时,使用2-114版本及之前版本带的DmJdbc驱动中的相关获取小版本的方法获取数据库小版本号信息会出现上面的报错。

具体的原因,应该是由于最新某个版本(2-114)开始数据库版本号信息命名规则发生变化,而对应版本自带的驱动未及时更新调整相关内置方法导致。该问题经过验证在最新DM V8 1-2-128版本的JDBC驱动中已解决。

解决办法

方法一、使用DM V8 1-2-114之后的版本驱动,比如03134283904-20220714-165042-20005 该版本(DM V8 1-2-128)。
方法二、更换数据库版本为DM V8 1-2-114之前的版本。
方法三、不使用DmJdbc驱动自带的方法获取数据库小版本号,自己在代码中来实现。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值