注册
oracle与DM之间的TO_TIMESTAMP转换问题
专栏/培训园地/ 文章详情 /

oracle与DM之间的TO_TIMESTAMP转换问题

jsfw_zf 2023/09/28 1833 0 0
摘要

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

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服