alibaba / alibaba/DataX

同步kingbase 提示 没有匹配指定名称和参数类型的操作符. 您也许需要增加明确的类型转换.

Open
#1,454 1 comment 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

{
"job":{
"setting":{
"speed":{
"channel":2,
"byte":1048576
},
"errorLimit":{
"record":0,
"percentage":0.02
}
},
"content":[
{
"reader":{
"name":"rdbmsreader",
"parameter":{
"username":"lightcode",
"password":"simayi@123",
"splitPk":"",
"connection":[
{
"querySql":[
"select name,archives_no from archives_basics"
],
"jdbcUrl":[
"jdbc:kingbase8://10.10.10.191:54321/lightcode"
]
}
]
}
},
"writer":{
"name":"rdbmswriter",
"parameter":{
"username":"lightcode",
"password":"simayi@123",
"column":[
"`name`",
"`pwd`"
],
"connection":[
{
"table":[
"test"
],
"jdbcUrl":"jdbc:kingbase8://10.10.10.191:54321/lightcode"
}
]
}
}
}
]
},
"core":{
"transport":{
"channel":{
"speed":{
"byte":524288
}
}
}
}
}

转换时提示

2022-07-23 14:26:35.300 [main] WARN Engine - prioriy set to 0, because NumberFormatException, the value is: null
2022-07-23 14:26:35.301 [main] INFO PerfTrace - PerfTrace traceId=job_-1, isEnable=false, priority=0
2022-07-23 14:26:35.301 [main] INFO JobContainer - DataX jobContainer starts job.
2022-07-23 14:26:35.304 [main] INFO JobContainer - Set jobId = 0
2022-07-23 14:26:40.799 [job-0] INFO OriginalConfPretreatmentUtil - Available jdbcUrl:jdbc:kingbase8://10.10.10.191:54321/lightcode.
2022-07-23 14:26:40.845 [job-0] INFO OriginalConfPretreatmentUtil - table:[test] all columns:[
name,pwd
].
2022-07-23 14:26:40.878 [job-0] ERROR JobContainer - Exception when job run
com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-01], Description:[获取表字段相关信息失败.]. - 获取表:test 的字段的元信息时失败. 请联系 DBA 核查该库、表信息. - com.kingbase8.util.KSQLException: 错误: 操作符不存在: ` varchar
Hint: 没有匹配指定名称和参数类型的操作符. 您也许需要增加明确的类型转换.
Position: 8 At Line: 1, Line Position: 8
at com.kingbase8.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2679)
at com.kingbase8.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2367)
at com.kingbase8.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:318)
at com.kingbase8.jdbc.KbStatement.executeInternal(KbStatement.java:472)
at com.kingbase8.jdbc.KbStatement.execute(KbStatement.java:392)
at com.kingbase8.jdbc.KbStatement.executeWithFlags(KbStatement.java:333)
at com.kingbase8.jdbc.KbStatement.executeCachedSql(KbStatement.java:319)
at com.kingbase8.jdbc.KbStatement.executeWithFlags(KbStatement.java:296)
at com.kingbase8.jdbc.KbStatement.executeQuery(KbStatement.java:246)
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getColumnMetaData(DBUtil.java:563)
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:125)
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:140)
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:35)
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Job.init(CommonRdbmsWriter.java:41)
at com.alibaba.datax.plugin.reader.rdbmswriter.RdbmsWriter$Job.init(RdbmsWriter.java:38)
at com.alibaba.datax.core.job.JobContainer.initJobWriter(JobContainer.java:704)
at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:304)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113)
at com.alibaba.datax.core.Engine.start(Engine.java:92)
at com.alibaba.datax.core.Engine.entry(Engine.java:171)
at com.alibaba.datax.core.Engine.main(Engine.java:204)

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.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:125) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:140) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:35) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Job.init(CommonRdbmsWriter.java:41) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.reader.rdbmswriter.RdbmsWriter$Job.init(RdbmsWriter.java:38) ~[rdbmswriter-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.initJobWriter(JobContainer.java:704) ~[datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:304) ~[datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113) ~[datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.start(Engine.java:92) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.entry(Engine.java:171) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.main(Engine.java:204) [datax-core-0.0.1-SNAPSHOT.jar:na]
Caused by: com.kingbase8.util.KSQLException: 错误: 操作符不存在: ` varchar
Hint: 没有匹配指定名称和参数类型的操作符. 您也许需要增加明确的类型转换.
Position: 8 At Line: 1, Line Position: 8
at com.kingbase8.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2679) ~[kingbase8-8.6.0.jar:V008R006B0301]
at com.kingbase8.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2367) ~[kingbase8-8.6.0.jar:V008R006B0301]
at com.kingbase8.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:318) ~[kingbase8-8.6.0.jar:V008R006B0301]
at com.kingbase8.jdbc.KbStatement.executeInternal(KbStatement.java:472) ~[kingbase8-8.6.0.jar:V008R006B0301]
at com.kingbase8.jdbc.KbStatement.execute(KbStatement.java:392) ~[kingbase8-8.6.0.jar:V008R006B0301]
at com.kingbase8.jdbc.KbStatement.executeWithFlags(KbStatement.java:333) ~[kingbase8-8.6.0.jar:V008R006B0301]
at com.kingbase8.jdbc.KbStatement.executeCachedSql(KbStatement.java:319) ~[kingbase8-8.6.0.jar:V008R006B0301]
at com.kingbase8.jdbc.KbStatement.executeWithFlags(KbStatement.java:296) ~[kingbase8-8.6.0.jar:V008R006B0301]
at com.kingbase8.jdbc.KbStatement.executeQuery(KbStatement.java:246) ~[kingbase8-8.6.0.jar:V008R006B0301]
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getColumnMetaData(DBUtil.java:563) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
... 11 common frames omitted
2022-07-23 14:26:40.884 [job-0] INFO StandAloneJobContainerCommunicator - Total 0 records, 0 bytes | Speed 0B/s, 0 records/s | Error 0 records, 0 bytes | All Task WaitWriterTime 0.000s | All Task WaitReaderTime 0.000s | Percentage 0.00%
2022-07-23 14:26:40.885 [job-0] ERROR Engine -

经DataX智能分析,该任务最可能的错误原因是:
com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-01], Description:[获取表字段相关信息失败.]. - 获取表:test 的字段的元信息时失败. 请联系 DBA 核查该库、表信息. - com.kingbase8.util.KSQLException: 错误: 操作符不存在: ` varchar
Hint: 没有匹配指定名称和参数类型的操作符. 您也许需要增加明确的类型转换.
Position: 8 At Line: 1, Line Position: 8
at com.kingbase8.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2679)
at com.kingbase8.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2367)
at com.kingbase8.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:318)
at com.kingbase8.jdbc.KbStatement.executeInternal(KbStatement.java:472)
at com.kingbase8.jdbc.KbStatement.execute(KbStatement.java:392)
at com.kingbase8.jdbc.KbStatement.executeWithFlags(KbStatement.java:333)
at com.kingbase8.jdbc.KbStatement.executeCachedSql(KbStatement.java:319)
at com.kingbase8.jdbc.KbStatement.executeWithFlags(KbStatement.java:296)
at com.kingbase8.jdbc.KbStatement.executeQuery(KbStatement.java:246)
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getColumnMetaData(DBUtil.java:563)
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:125)
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:140)
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:35)
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Job.init(CommonRdbmsWriter.java:41)
at com.alibaba.datax.plugin.reader.rdbmswriter.RdbmsWriter$Job.init(RdbmsWriter.java:38)
at com.alibaba.datax.core.job.JobContainer.initJobWriter(JobContainer.java:704)
at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:304)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113)
at com.alibaba.datax.core.Engine.start(Engine.java:92)
at com.alibaba.datax.core.Engine.entry(Engine.java:171)
at com.alibaba.datax.core.Engine.main(Engine.java:204)

at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:33)
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getColumnMetaData(DBUtil.java:575)
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:125)
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.dealColumnConf(OriginalConfPretreatmentUtil.java:140)
at com.alibaba.datax.plugin.rdbms.writer.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:35)
at com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter$Job.init(CommonRdbmsWriter.java:41)
at com.alibaba.datax.plugin.reader.rdbmswriter.RdbmsWriter$Job.init(RdbmsWriter.java:38)
at com.alibaba.datax.core.job.JobContainer.initJobWriter(JobContainer.java:704)
at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:304)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113)
at com.alibaba.datax.core.Engine.start(Engine.java:92)
at com.alibaba.datax.core.Engine.entry(Engine.java:171)
at com.alibaba.datax.core.Engine.main(Engine.java:204)
Caused by: com.kingbase8.util.KSQLException: 错误: 操作符不存在: ` varchar
Hint: 没有匹配指定名称和参数类型的操作符. 您也许需要增加明确的类型转换.
Position: 8 At Line: 1, Line Position: 8
at com.kingbase8.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2679)
at com.kingbase8.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2367)
at com.kingbase8.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:318)
at com.kingbase8.jdbc.KbStatement.executeInternal(KbStatement.java:472)
at com.kingbase8.jdbc.KbStatement.execute(KbStatement.java:392)
at com.kingbase8.jdbc.KbStatement.executeWithFlags(KbStatement.java:333)
at com.kingbase8.jdbc.KbStatement.executeCachedSql(KbStatement.java:319)
at com.kingbase8.jdbc.KbStatement.executeWithFlags(KbStatement.java:296)
at com.kingbase8.jdbc.KbStatement.executeQuery(KbStatement.java:246)
at com.alibaba.datax.plugin.rdbms.util.DBUtil.getColumnMetaData(DBUtil.java:563)
... 11 more

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with plugin-rdbms-util DBUtil.java around getColumnMetaData at line 563, then trace OriginalConfPretreatmentUtil.dealColumnConf around line 125 and the rdbmswriter configuration using the Kingbase JDBC URL. Reproduce the reported metadata failure with the supplied job and determine the expected behavior for the quoted columns; done means the job can obtain test table metadata without the reported operator error.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.