alibaba / DataX

DataX是阿里云DataWorks数据集成的开源版本。
Other
15.95k stars 5.44k forks source link

oracle to oracle 多张表同步 #232

Open uniiao opened 5 years ago

uniiao commented 5 years ago

配置单张表同步,配置多张表的时候就报错,如下:

jdbcUrl:[jdbc:oracle:thin:@192.168.0.161:1521/test]. 2018-12-05 16:58:34.720 [0-0-1-writer] ERROR WriterRunner - Writer Runner Received Exceptions: com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-01], Description:[获取表字段相关信息失败.]. - 获取表:STATUSINFO 的字段的元信息时失败. 请联系 DBA 核查该库、表信息. - java.sql.SQLSyntaxErrorException: ORA-00904: "DEFECTIVE_FSA_R": invalid identifier

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:193)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:873)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1491)
at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:406)
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getColumnMetaData(DBUtil.java:563)
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Task.startWriteWithConnection(CommonRdbmsWriter.java:266)
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Task.startWrite(CommonRdbmsWriter.java:319)
at com.alibaba.datax.plugin.writer.oraclewriter.OracleWriter$Task.startWrite(OracleWriter.java:88)
at com.alibaba.datax.core.taskgroup.runner.WriterRunner.run(WriterRunner.java:56)
at java.lang.Thread.run(Thread.java:748)

at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:33) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getColumnMetaData(DBUtil.java:575) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Task.startWriteWithConnection(CommonRdbmsWriter.java:266) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Task.startWrite(CommonRdbmsWriter.java:319) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.writer.oraclewriter.OracleWriter$Task.startWrite(OracleWriter.java:88) ~[oraclewriter-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.taskgroup.runner.WriterRunner.run(WriterRunner.java:56) ~[datax-core-0.0.1-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]

Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "DEFECTIVE_FSA_R": invalid identifier

json 脚本如下:

{ "job": { "content": [ { "reader": { "name": "oraclereader", "parameter": { "column": [""], "connection": [ { "jdbcUrl": ["jdbc:oracle:thin:@XX.XX.XX.XX:XXXX/XXXX"], "table": ["XXXX_INFO","XXXXINFO"] } ], "password": "XXXX", "username": "XXXX" } }, "writer": { "name": "oraclewriter", "parameter": { "column": [""], "connection": [ { "jdbcUrl": "jdbc:oracle:thin:@xx.xx.xx.xx:xxx/xxx", "table": ["XXXX_INFO","XXXXINFO"] } ], "password": "xxx", "preSql": ["truncate table CLASSIFICATION_INFO","truncate table STATUSINFO"], "username": "xxxxx" } } } ], "setting": { "speed": { "channel":"2" } } } }

cjy513203427 commented 5 years ago

same question as yours

jimmy-bj commented 4 years ago

是不是不支持多表,一个json文件只能写一张表的同步任务,多张表需要生成多个json文件。