首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >连接到hana的Nifi executesql在创建avro模式时失败

连接到hana的Nifi executesql在创建avro模式时失败
EN

Stack Overflow用户
提问于 2017-04-21 08:53:13
回答 1查看 211关注 0票数 0

检查代码时,会将错误抛出到需要转换为avro架构的未定义数据类型上。然而,我选择的唯一一列是NVARCHAR(5000)类型,它在代码中。

2017-04-21 01:33:51,446警告定时器驱动的进程线程-1 o.a.n.c.t.ContinuallyRunProcessorTask java.lang.IllegalArgumentException: createSchema:未知SQL类型2011不能转换为Avro类型在org.apache.nifi.processors.standard.util.JdbcCommon. ~na:na在org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream(JdbcCommon.java:92) ~na:na :naorg.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream(JdbcCommon.java:77) ~na:na : org.apache.nifi.processors.standard.ExecuteSQL$2.process(ExecuteSQL.java:205) ~na:na在org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:2329) ~nifi框架-1.1.2.jar:1.1.2在org.apache.nifi.processors.standard。org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) ~nifi-api-1.1.2.jar:1.1.2 at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1099) ~nifi-framework-1.1.2.jar:1.1.2 at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:136)1.1.2.jar:1.1.2在org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47) nifi-framework-1.1.2.jar:1.1.2 at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:132) nifi- java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) -1.1.2.jar:1.1.2 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) na:1。java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) na:1.8.0_102 at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) na:1.8.0_102 at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) na:1.8.0_102 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) na:1.8.0_102 atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) na:1.8.0_102 at java.lang.Thread.run(Thread.java:745) na:1.8.0_102

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-21 12:46:10

在JDK8的JDBC中,NCLOB是2011年,NVARCHAR是-9:

代码语言:javascript
复制
public static final int NCLOB = 2011;
public static final int NVARCHAR = -9;

尽管您认为该列是NVARCHAR,但您使用的驱动程序似乎正在返回该列的2011年。我不完全确定,但这似乎是不正确的行为,从汉纳司机。

通过将NCLOB添加到JdbcCommon中的本例语句中,可能可以在事情的JdbcCommon端处理它:

代码语言:javascript
复制
 case CHAR:
 case LONGNVARCHAR:
 case LONGVARCHAR:
 case NCHAR:
 case NVARCHAR:
 case VARCHAR:
 case CLOB:
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43538154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档