Open guojianming opened 1 year ago
增量同步可以成功,但是在全量同步mysql到oracle时失败了 *sqlRs has error, sql: SELECT FROM 表名 LIMIT 1** oralce 获取行应该是rownum 而不是limit 不知道是哪里没有配置好,不是本身有bug
增量同步可以成功,但是在全量同步mysql到oracle时失败了 *sqlRs has error, sql: SELECT FROM 表名 LIMIT 1** oralce 获取行应该是rownum 而不是limit 不知道是哪里没有配置好,不是本身有bug
请问这个问题解决了吗
看了一下源码,严重怀疑,开发的时候没测过全量同步到oracle数据库,有些逻辑都是有问题的。 改了部分 RdbEtlService 类的executeSqlImport 方法的代码:
获取字段源信息的sql加了个oracle的判断。
下面同步到oracle数据库时,获取数据库类型取值也不对。
看了一下源码,严重怀疑,开发的时候没测过全量同步到oracle数据库,有些逻辑都是有问题的。 改了部分 RdbEtlService 类的executeSqlImport 方法的代码: 获取字段源信息的sql加了个oracle的判断。 下面同步到oracle数据库时,获取数据库类型取值也不对。
少量数据用这个同步一下可以,大批量的就算了
Question
ERROR com.alibaba.otter.canal.client.adapter.support.Util - sqlRs has error, sql: SELECT * FROM
表名
LIMIT 1ERROR c.a.otter.canal.client.adapter.rdb.service.RdbEtlService - java.sql.SQLException: Invalid argument(s) in call: setFetchSize java.lang.RuntimeException: java.sql.SQLException: Invalid argument(s) in call: setFetchSize at com.alibaba.otter.canal.client.adapter.support.Util.sqlRS(Util.java:47) ~[client-adapter.common-1.1.6.jar:na] at com.alibaba.otter.canal.client.adapter.rdb.service.RdbEtlService.executeSqlImport(RdbEtlService.java:62) ~[na:na] at com.alibaba.otter.canal.client.adapter.support.AbstractEtlService.lambda$importData$1(AbstractEtlService.java:91) ~[client-adapter.common-1.1.6.jar:na] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] Caused by: java.sql.SQLException: Invalid argument(s) in call: setFetchSize at oracle.jdbc.driver.OracleStatement.setPrefetchInternal(OracleStatement.java:2891) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] at oracle.jdbc.driver.OracleStatement.setFetchSize(OracleStatement.java:4169) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] at oracle.jdbc.driver.OracleStatementWrapper.setFetchSize(OracleStatementWrapper.java:246) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] at com.alibaba.druid.filter.FilterChainImpl.statement_setFetchSize(FilterChainImpl.java:3051) ~[druid-1.2.11.jar:1.2.11] at com.alibaba.druid.filter.FilterAdapter.statement_setFetchSize(FilterAdapter.java:2656) ~[druid-1.2.11.jar:1.2.11] at com.alibaba.druid.filter.FilterChainImpl.statement_setFetchSize(FilterChainImpl.java:3048) ~[druid-1.2.11.jar:1.2.11] at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.setFetchSize(StatementProxyImpl.java:441) ~[druid-1.2.11.jar:1.2.11] at com.alibaba.druid.pool.DruidPooledStatement.setFetchSize(DruidPooledStatement.java:721) ~[druid-1.2.11.jar:1.2.11] at com.alibaba.otter.canal.client.adapter.support.Util.sqlRS(Util.java:41) ~[client-adapter.common-1.1.6.jar:na] ... 6 common frames omitted