obloader导入 ctrl中有部分字段是timestamp类型 入库异常

【 使用环境 】 测试环境
【 OB or 其他组件 】OB
【 使用版本 】ob-loader-dumper-4.2.4-RELEASE
【问题描述】ctl中部分字段是timestamp 入库异常
ctl如下:
lang=java
(DATA_UUID ,
CHECK_DATE “to_timestamp(CHECK_DATE,‘yyyy-MM-dd HH:mi:ss’)”,
ORG_DATA ,
CREATE_USER ,
CREATE_DEPT ,
CREATE_TIME “to_timestamp(CREATE_TIME,‘yyyy-MM-dd HH:mi:ss’)”,
UPDATE_USER ,
UPDATE_TIME “to_timestamp(UPDATE_TIME,‘yyyy-MM-dd HH:mi:ss’)”);
报错日志: Reason: Format ‘i’ not supported.

【复现路径】
换成以下写法:
第一种:TO_TIMESTAMP(UPDATE_TIME,‘yyyy-MM-dd HH:mm:ss’)
TO_TIMESTAMP(UPDATE_TIME,‘yyyyMMddHHmmss’)
报错日志:Reason: Unable to parse the date: “2023-07-20 09:29:45”
第二种:tmsfmt(UPDATE_TIME,‘yyyyMMddHHmmss’,‘20210310000000’,‘yyyyMMddHHmmss’)
数据正常入库,但是时间是默认的2021031000000 并非我所要

odc查询语句正常:
select to_timestamp(‘2022-07-13 12:12:12’,‘yyyy-MM-dd HH:mi:ss’) from dual
image

这里没必要使用控制文件。obloader 提供了若干时间类型格式的命令行选项,比如:–nls-timestamp-format。

1 个赞

并非测试ctl 而是生产用到ctl文件了

1 个赞

@AntTech_AGTH5F 这个应该是to_timestamp使用问题,'yyyy-MM-dd HH:mi:ss’是你的目标格式吧,如果目标格式和当前数据的格式不一样要加上当前格式,否则无法解析,语法是 to_timestamp(‘2022-07-13 12:12:12’,‘当前时间格式’,‘yyyy-MM-dd HH:mi:ss’)

1 个赞

感谢楼上两位老师的分析 已经解决啦 是本人文件中的字符串包含一个引号导致的

1 个赞

能看看最终版嘛