从5.7.25 v4.2.1.0迁移到5.7.25 v4.1.0.1,时间类型为空的数据报错乱码

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】
做数据迁移,如标题所示,使用ODB自带的导入导出功能做的迁移,迁移时没有报错,在实际运行工程的时候,出现时间类型如果是空值的话,会有乱码报错,转换异常,但是使用客户端sql查询,显示的那个字段还是正常空值。

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

请问是使用的obloader和obdumper做的迁移吗

使用obdc客户端的导入导出

导入成功之后查询出错,应该和导入过程无关。

请检查导入的数据,是否存在 ‘0000-00-00 00:00:00’ 等非法时间值。
可通过订正非法数据或者在 JDBC url 配置 zeroDateTimeBehavior 来解决。

1 个赞

有您说的类似情况,导入前数据是null,导入后0001-01-01 00:00:00,这个有办法在导入导出的时候做处理吗

您可以通过 ob-loader-dumper 导数工具导入来绕开次问题, ob-loader-dumper 的默认配置是 zeroDateTimeBehavior=convertToNull 。

这里 ODC 配置为 zeroDateTimeBehavior=Round 了,我们录 BUG 下个版本修复。

好的,感谢