一、To_timestamp转换异常问题
本次用于进行问题验证的达梦数据库版本为03134283905-20220606-162035-10000版本。Oracle数据库版本为oracle11.2.0.1.0版本。
1、问题现象
在执行sql命令时,出现报错,报错信息为“-6130: 文字与格式字符串不匹配”。
2、问题验证
使用本机的达梦数据库环境和本机的oralce数据库环境分别进行验证,新建一个test_timed表,之后进行数据查询操作。
达梦数据库:
1)建立测试表:
2)进行sql查询:
3)对sql进行修改后进行查询:
Oracle数据库:
1)建立测试表:
2)进行sql查询:
3)对sql进行修改后进行查询:
对比后发现:oracle和达梦的to_timestamp函数的处理方式有一些区别。
3、问题分析
经过验证后发现,两款数据库的to_timestamp函数,对数据的处理方式是存在差异的,因为在源数据中包含“2023-05”这样一条数据,这类数据是不符合函数的规则的,oracle数据库默认是不对此数据进行补全操作的,故需要在后进行“||-01”的补全操作。而达梦数据库则不需要进行此补全操作,默认就已经补全了。故在sql语句上存在一些细微的区别。
4、问题总结
经过验证问题得出,达梦数据库to_timestamp函数和oracle存在差异,在进行异构库迁移时,如果涉及此类问题,需要注意sql语句的改写。
文章
阅读量
获赞