我尝试使用一个非常简单的 SQL 查询来检索 Oracle 数据库中两个表的连接内容:
SELECT OWNER.CONTENT.ID, OWNER.CONTENT.TITLE, OWNER.BODYCONTENT.BODY
FROM OWNER.CONTENT, OWNER.BODYCONTENT
WHERE OWNER.CONTENT.ID = OWNER.BODYCONTENT.ID
AND OWNER.CONTENT.ID < 7
该查询使用 Oracle SQL Developer 运行。
我在 NiFi 中使用 ojdbc7.jar 驱动程序。不包含连接的更简单的 SQL 查询与“ExecuteSQL”一起使用,例如
SELECT OWNER.CONTENT.ID, OWNER.CONTENT.TITLE
FROM OWNER.CONTENT
WHERE OWNER.CONTENT.ID < 7
我也尝试过其他 SQL 语句(例如 INNER JOIN)。查询使用 Oracle SQL Developer 可以按预期工作,但在 NiFi 中则不行。有人能帮我吗?
NiFi 中的错误消息:
2016-05-03 11:30:02,413 错误 [Timer-Driven Process Thread-6] oanifi.processors.standard.ExecuteSQL org.apache.nifi.processor.exception.ProcessException:java.sql.SQLFeatureNotSupportedException:组织中不支持的功能。 apache.nifi.processors.standard.ExecuteSQL$1.process(ExecuteSQL.java:160) ~[nifi-standard-processors-0.6.1.jar:0.6.1] 在 org.apache.nifi.controller.repository.StandardProcessSession。写(StandardProcessSession.java:1954)~[na:na] at org.apache.nifi.processors.standard.ExecuteSQL.onTrigger(ExecuteSQL.java:152)~[nifi-standard-processors-0.6.1.jar:0.6 .1] 在 org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) [nifi-api-0.6.1.jar:0.6.1] 在 org.apache.nifi.controller.StandardProcessorNode.onTrigger( StandardProcessorNode.java:1059) [nifi-framework-core-0.6.1.jar:0。6.1] 在 org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:136) [nifi-framework-core-0.6.1.jar:0.6.1] 在 org.apache.nifi.controller.tasks .ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47) [nifi-framework-core-0.6.1.jar:0.6.1] at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:123) [nifi-framework-core-0.6.1.jar:0.6.1] 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_60] 在 java.util.concurrent。 FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_60] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_60] at java.util.concurrent .ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.7.0_60] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_60] 在 java.util.concurrent。 ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_60] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60] 原因:java.sql.SQLFeatureNotSupportedException: oracle.jdbc.driver.ClobAccessor.getBytes(ClobAccessor.java:534) 中不支持的功能 ~[na:na] 在 oracle.jdbc.driver.GeneratedStatement.getBytes(GeneratedStatement.java:151) ~[na:na] 在 oracle .jdbc.driver.GeneratedScrollableResultSet.getBytes(GeneratedScrollableResultSet.java:326) ~[na:na] at org.apache.commons.dbcp.DelegatingResultSet.getBytes(DelegatingResultSet.java:241) ~[na:na] at org.apache .commons.dbcp.DelegatingResultSet.getBytes(DelegatingResultSet.java:241) ~[na:na] at org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream(JdbcCommon.java:105) ~[nifi-standard-processors -0.6.1.jar:0.6.1] 在 org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream(JdbcCommon.java:72) ~[nifi-standard-processors-0.6.1.jar:0.6。 1] 在 org.apache.nifi.processors.standard.ExecuteSQL$1.process(ExecuteSQL.java:158) ~[nifi-standard-processors-0.6.1.jar:0.6.1] ...省略了 14 个常见框架72) ~[nifi-standard-processors-0.6.1.jar:0.6.1] at org.apache.nifi.processors.standard.ExecuteSQL$1.process(ExecuteSQL.java:158) ~[nifi-standard-processors- 0.6.1.jar:0.6.1] ...省略了14个常用框架72) ~[nifi-standard-processors-0.6.1.jar:0.6.1] at org.apache.nifi.processors.standard.ExecuteSQL$1.process(ExecuteSQL.java:158) ~[nifi-standard-processors- 0.6.1.jar:0.6.1] ...省略了14个常用框架