-
-
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
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
![](static/image/common/none.gif)
![](static/image/common/none.gif)
![](static/image/common/none.gif)
3个回答
您mysql是哪个版本的?mysql不同版本,对于时间戳字段默认0timestamp default 0的处理格式并不一样。建议过滤掉默认0的数据后再抽取。
本帖最后由 AlexisP 于 2021-5-21 18:00 编辑
zengxq 发表于 2021-5-21 11:25
您mysql是哪个版本的?mysql不同版本,对于时间戳字段默认0timestamp default 0的处理格式并不一样。建议过 ...
mysql版本5.6.16-log
抽取过来时间戳为0的数据不能过滤,必须要全量的