[ABI 5.2] 从结果集获取字段,类型93数据出现异常

3622
13

萧涤 数据小白Lv1

发表于2023-8-11 09:27

悬赏1

已解决

楼主
报错日志如下,目标字段是时间戳格式,想把null插入目标列


执行ETL过程[]出现异常:com.esen.exception.RuntimeException4I18N: 执行数据迁移时出现异常

    at java.sql.Timestamp.valueOf(Timestamp.java:202)
    at oracle.jdbc.driver.CharCommonAccessor.getTimestamp(CharCommonAccessor.java:544)
    at oracle.jdbc.driver.T4CVarcharAccessor.getTimestamp(T4CVarcharAccessor.java:947)
    at oracle.jdbc.driver.OracleResultSetImpl.getTimestamp(OracleResultSetImpl.java:1422)
    at com.esen.jdbc.pool.PooledResultSet.getTimestamp(PooledResultSet.java:143)
    at com.esen.edf.data.migrate.jdbc.JdbcReader$ResultSetHandler.fillColumn(JdbcReader.java:226)
    at com.esen.edf.data.migrate.jdbc.JdbcReader$ResultSetHandler.getDataRow(JdbcReader.java:183)
    at com.esen.edf.data.migrate.jdbc.JdbcReader.getRow(JdbcReader.java:136)
    at com.esen.edf.data.migrate.common.buffer.DataSenderRequestTask.call(DataSenderRequestTask.java:54)
    at com.esen.edf.data.migrate.common.buffer.DataSenderRequestTask.call(DataSenderRequestTask.java:24)
    at com.esen.ethreadpool.req.RequestTaskFutureImpl.call(RequestTaskFutureImpl.java:100)
    at com.esen.scheduling.LocaleTask.call(LocaleTask.java:56)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: com.esen.exception.RuntimeException4I18N: 发送数据时出现异常
    ... 16 more
Caused by: com.esen.exception.RuntimeException4I18N: 从结果集获取字段MATURITY,类型93数据出现异常
    ... 16 more
Caused by: java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
    ... 16 more

最近看过此主题的会员

esen_51JBYX12HL

esen_4YTY8WD4QV

hee

chestnut

ESENSOFT官方技术支持

伶俐

最佳答案
关帖总结:
问题:输出数据库是oracle,目标表已创建,有数据,选择数据附加;用sql组件或表达式组件新增一个日期空值报错。
解决方案:用sql组件写insert脚本。
13个回答

只看楼主

chestnut 数据领袖Lv6

发表于2023-8-11 11:11

只看该作者

取消 关注该作者的回复

沙发

用的是什么数据库,etl中具体是怎么设置的?

萧涤 数据小白Lv1

发表于2023-8-11 11:23

只看该作者

取消 关注该作者的回复

板凳

目标数据库是oracle,源是sql输入,select null as 和select '' as 都试过,sql输入接表达式组件 表达式组件中 MATURITY        SqlSource2.MATURITY        MATURITY        P        ,目标表数据类型如第二个截图

萧涤 数据小白Lv1

发表于2023-8-11 11:24

只看该作者

取消 关注该作者的回复

地板

chestnut 发表于 2023-8-11 11:11
用的是什么数据库,etl中具体是怎么设置的?

回到楼里了,大佬看看

萧涤 数据小白Lv1

发表于2023-8-11 11:38

只看该作者

取消 关注该作者的回复

5#

目标表字段设置

chestnut 数据领袖Lv6

发表于2023-8-11 14:30

只看该作者

取消 关注该作者的回复

6#

萧涤 发表于 2023-8-11 11:24
回到楼里了,大佬看看

是需要新增一个空的日期字段,输出到对应输出表中?
可以试试在sql输入中不加日期字段,在表达式组件中添加,值:'' ,数据类型根据需求设置

萧涤 数据小白Lv1

发表于2023-8-11 14:48

只看该作者

取消 关注该作者的回复

7#

chestnut 发表于 2023-8-11 14:30
是需要新增一个空的日期字段,输出到对应输出表中?
可以试试在sql输入中不加日期字段,在表达式组件中添 ...

还是不行

萧涤 数据小白Lv1

发表于2023-8-11 14:48

只看该作者

取消 关注该作者的回复

8#

chestnut 发表于 2023-8-11 14:30
是需要新增一个空的日期字段,输出到对应输出表中?
可以试试在sql输入中不加日期字段,在表达式组件中添 ...

日期型,时间戳都试过了,报错是一样的

chestnut 数据领袖Lv6

发表于2023-8-11 14:57

只看该作者

取消 关注该作者的回复

9#

萧涤 发表于 2023-8-11 14:48
日期型,时间戳都试过了,报错是一样的

输出的数据库表是已经创建好的吗?是否有数据呢?输出组件中更新方式设置的是什么?

萧涤 数据小白Lv1

发表于2023-8-11 15:16

只看该作者

取消 关注该作者的回复

10#

chestnut 发表于 2023-8-11 14:57
输出的数据库表是已经创建好的吗?是否有数据呢?输出组件中更新方式设置的是什么? ...

目标表是已经创建过的,有数据的,输出组件设置的更新方式是数据附加

chestnut 数据领袖Lv6

发表于2023-8-11 15:38

只看该作者

取消 关注该作者的回复

11#

萧涤 发表于 2023-8-11 15:16
目标表是已经创建过的,有数据的,输出组件设置的更新方式是数据附加

我这边本地测的都是正常的,预估是bug,联系项目组研发看看~

上一页12下一页共2页

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号