[数据交换] mysql抽取到oracle数据库报错

2950
3

AlexisP 小试身手Lv3

发表于2021-5-20 14:15

悬赏1

已解决

楼主
睿治版本v2.2.1
从mysql数据库抽取到oracle数据库时报错,并且利用睿治 不存在则创建 的 功能创建的表也无法进行正常的抽数。


报错信息:
2021-05-20 14:08:18 开始迁移到目标表:C##DW.aaaaaaaaaaa
2021-05-20 14:09:26 com.esen.exception.RuntimeException4I18N: 执行数据迁移时出现异常
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
    at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:937)
    at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
    at com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5918)
    at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5588)
    at com.esen.jdbc.pool.PooledResultSet.getTimestamp(PooledResultSet.java:143)
    at com.esen.edataexchange.data.migrate.jdbc.JdbcReader$ResultSetHandler.fillColumn(JdbcReader.java:214)
    at com.esen.edataexchange.data.migrate.jdbc.JdbcReader$ResultSetHandler.getDataRow(JdbcReader.java:172)
    at com.esen.edataexchange.data.migrate.jdbc.JdbcReader.getRow(JdbcReader.java:141)
    at com.esen.edataexchange.data.migrate.common.buffer.DataSenderRequestTask.call(DataSenderRequestTask.java:54)
    at com.esen.edataexchange.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:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: com.esen.exception.RuntimeException4I18N: 发送数据时出现异常
    ... 20 more
Caused by: com.esen.exception.RuntimeException4I18N: 从结果集获取字段ROW_VERSION,类型93数据出现异常
    ... 20 more
Caused by: java.sql.SQLException: Value '0000-00-00 00:00:00.000000' can not be represented as java.sql.Timestamp
    ... 20 more

2021-05-20 14:09:26 执行交换任务[to_info_resource_basic_info_test]出现异常:com.esen.exception.RuntimeException4I18N: 执行数据迁移时出现异常
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
    at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:937)
    at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
    at com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5918)
    at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5588)
    at com.esen.jdbc.pool.PooledResultSet.getTimestamp(PooledResultSet.java:143)
    at com.esen.edataexchange.data.migrate.jdbc.JdbcReader$ResultSetHandler.fillColumn(JdbcReader.java:214)
    at com.esen.edataexchange.data.migrate.jdbc.JdbcReader$ResultSetHandler.getDataRow(JdbcReader.java:172)
    at com.esen.edataexchange.data.migrate.jdbc.JdbcReader.getRow(JdbcReader.java:141)
    at com.esen.edataexchange.data.migrate.common.buffer.DataSenderRequestTask.call(DataSenderRequestTask.java:54)
    at com.esen.edataexchange.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:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: com.esen.exception.RuntimeException4I18N: 发送数据时出现异常
    ... 20 more
Caused by: com.esen.exception.RuntimeException4I18N: 从结果集获取字段ROW_VERSION,类型93数据出现异常
    ... 20 more
Caused by: java.sql.SQLException: Value '0000-00-00 00:00:00.000000' can not be represented as java.sql.Timestamp
    ... 20 more

最佳答案
您mysql是哪个版本的?mysql不同版本,对于时间戳字段默认0timestamp default 0的处理格式并不一样。建议过滤掉默认0的数据后再抽取。
3个回答

只看楼主

zengxq 数据达人Lv4

发表于2021-5-20 14:15

只看该作者

取消 关注该作者的回复

沙发

您mysql是哪个版本的?mysql不同版本,对于时间戳字段默认0timestamp default 0的处理格式并不一样。建议过滤掉默认0的数据后再抽取。

AlexisP 小试身手Lv3

发表于2021-5-21 17:52

只看该作者

取消 关注该作者的回复

板凳

本帖最后由 AlexisP 于 2021-5-21 18:00 编辑

zengxq 发表于 2021-5-21 11:25
您mysql是哪个版本的?mysql不同版本,对于时间戳字段默认0timestamp default 0的处理格式并不一样。建议过 ...

mysql版本5.6.16-log
抽取过来时间戳为0的数据不能过滤,必须要全量的

AlexisP 小试身手Lv3

发表于2021-5-26 09:35

只看该作者

取消 关注该作者的回复

地板

就没有什么好的解决方法吗

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

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

小时

全天响应

分钟

快速处理问题

工程师强势助力

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

渠道咨询电话:137-0120-6790

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

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

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