You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
By clicking “Sign up for GitHub”, you agree to our
terms of service
and
privacy statement
. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
一、"splitPk":""id"",导致在确认字段阶段,报没有 "id" 字段,日志信息如下:
.....table:["order_tb"] has columns:[id,type,relationId].
.......:[您填写的主键列不合法, DataX 仅支持切分主键为一个,并且类型为整数或者字符串类型.]. - 您的配置文件中的列配置信息有误. 因为根据您的配置,您读取的数据库表:"order_tb" 中没有主键名为:"id". 请检查您的配置并作出修改.
二、"splitPk":"id",导致在同步数据阶段,oracle sql语法报错,日志信息如下:
com.alibaba.datax.common.exception.DataXException: Code:[ORACLEErrCode-05], Description:[SQL语句执行出错,原因可能是你填写的列不存在或者where条件不符合要求,1,请检查该列是否存在,如果是常量或者变量,请使用英文单引号’包起来; 2,请检查Where条件是否存在拼写或语法错误]. - 执行的SQL为: SELECT * FROM ( SELECT id FROM "order_tb" SAMPLE (0.1) WHERE (id IS NOT NULL) ORDER BY DBMS_RANDOM.VALUE) WHERE ROWNUM <= 15 ORDER by id ASC 具体错误信息为:java.sql.SQLSyntaxErrorException: ORA-00904: "ID": invalid identifier
oracle查询语法:select "id" from "tb_name"
datax检查splitPk字段在对应的表中是否存在:将“id”视为一个字段,但是datax遍历表的字段是id,没有带双引号。
因此呢产生了一个非常矛盾的现象:我将字段加上双引号,oracle语句没有语法问题,但是在检查字段是否存在时,"id" <-> id比较,直接报属性不存在的错误提示; 我取消双引号呢,虽然字段是否存在的检查能够通过,但是oracle语句有语法问题。