检查代码时,会将错误抛出到需要转换为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
发布于 2017-04-21 12:46:10
在JDK8的JDBC中,NCLOB是2011年,NVARCHAR是-9:
public static final int NCLOB = 2011;
public static final int NVARCHAR = -9;尽管您认为该列是NVARCHAR,但您使用的驱动程序似乎正在返回该列的2011年。我不完全确定,但这似乎是不正确的行为,从汉纳司机。
通过将NCLOB添加到JdbcCommon中的本例语句中,可能可以在事情的JdbcCommon端处理它:
case CHAR:
case LONGNVARCHAR:
case LONGVARCHAR:
case NCHAR:
case NVARCHAR:
case VARCHAR:
case CLOB:https://stackoverflow.com/questions/43538154
复制相似问题