alibaba / alibaba/DataX

oracle19c to oracle19c 执行oraclewriter操作失败

Open
#1,840 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
17.4k
Forks
5.7k
PR merge metrics
No merged PRs in 30d

Description

--------------》详细日志:
2023-07-14 13:51:39.734 [0-0-0-writer] WARN CommonRdbmsWriter$Task - 回滚此次写入, 采用每次写入一行方式提交. 因为:ORA-00936: 缺失表达式

2023-07-14 13:51:39.739 [0-0-0-writer] ERROR StdoutPluginCollector -
java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1044) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3685) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1376) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Task.doOneInsert(CommonRdbmsWriter.java:438) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Task.doBatchInsert(CommonRdbmsWriter.java:418) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Task.startWriteWithConnection(CommonRdbmsWriter.java:326) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Task.startWrite(CommonRdbmsWriter.java:348) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.writer.oraclewriter.OracleWriter$Task.startWrite(OracleWriter.java:90) [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:750) [na:1.8.0_372]
2023-07-14 13:51:39.741 [0-0-0-writer] ERROR StdoutPluginCollector - 脏数据:
{"exception":"ORA-00936: 缺失表达式\n","record":[{"byteSize":1,"index":0,"rawData":"1","type":"DOUBLE"},{"byteSize":2,"index":1,"rawData":"小五","type":"STRING"},{"byteSize":2,"index":2,"rawData":"测试","type":"STRING"},{"byteSize":8,"index":3,"rawData":1689311441000,"type":"DATE"},{"byteSize":8,"index":4,"rawData":1689311441000,"type":"DATE"},{"byteSize":1,"index":5,"rawData":"1","type":"DOUBLE"},{"byteSize":2,"index":6,"rawData":"小五","type":"STRING"},{"byteSize":2,"index":7,"rawData":"测试","type":"STRING"},{"byteSize":8,"index":8,"rawData":1689311441000,"type":"DATE"},{"byteSize":8,"index":9,"rawData":1689311441000,"type":"DATE"}],"type":"writer"}

--------------》oracle2oracle.json
{
"job": {
"content": [
{
"reader": {
"name": "oraclereader",
"parameter": {
"column": [
"ID",
"NAME",
"TITLE",
"C_CREATE_TIME",
"C_UPDATE_TIME"
],
"connection": [
{
"jdbcUrl": [
"jdbc:oracle:thin:@172.16.130.203:1521:orcl"
],
"table": [
"T_TEST"
]
}
],
"password": "xxx",
"username": "DATAX_SOURCE",
"where": "C_UPDATE_TIME > to_date('${begin_time}','yyyy-mm-dd hh24:mi:ss') and C_UPDATE_TIME <= to_date('${end_time}','yyyy-mm-dd hh24:mi:ss')"
}
},
"writer": {
"name": "oraclewriter",
"parameter": {
"column": [
"ID",
"NAME",
"TITLE",
"C_CREATE_TIME",
"C_UPDATE_TIME"
],
"connection": [
{
"jdbcUrl": "jdbc:oracle:thin:@172.16.130.204:1521/orcl",
"table": [
"T_TEST"
]
}
],
"password": "xxx",
"username": "DATAX_TARGET",
"preSql": [
"truncate table T_TEST"
]
}
}
}
],
"setting": {
"speed": {
"channel": 6
}
}
}
}

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with CommonRdbmsWriter.java at doOneInsert and doBatchInsert, then inspect OracleWriter.java at Task.startWrite. Reproduce the oracle19c-to-oracle19c job using the configuration and log in this issue, and identify the cause of ORA-00936. Done means the configured Oracle writer completes the insert without the SQL syntax error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, sql
Domain
database
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.