我有一个运行数据库查询的Mule应用程序运行得非常好(虽然有点慢)。它的详细信息是:
ojdbc6
驱动程序现在,当我使用database
驱动程序创建ojdbc6
连接时,不使用公用表表达式(CTE),查询运行正常(2.5秒)。
当我使用我的CTE时,查询失败并显示错误:
org.mule.api.MessagingException
:查询类型必须是'[SELECT,STORE_PROCEDURE_CALL]'之一,但是'DDL'(java.lang.IllegalArgumentException
)。消息有效内容的类型为:NullPayload
显然,在某些时候,Mule EE服务器认为我正在尝试执行DDL而不是。
使用CTE的新查询在SQL Developer中运行得非常好(在.250秒),所以我知道这不是我的查询。
为什么我不能在Mule中使用CTE(WITH
)语句?
这是一个已知问题吗?我做错了吗?
<小时/> 在CTE之前查询(简化):
SELECT '1' AS COLUMN_ONE, 'X' AS COLUMN_X
FROM DUAL
CTE后查询(简化):
WITH TBL AS
(
SELECT '1' AS COLUMN_ONE, 'X' AS COLUMN_X
FROM DUAL
)
SELECT * FROM TBL
答案 0 :(得分:1)
截至2016-04-27,骡子不支持 CTE声明。
我不得不深入挖掘这个。
如果您还没有我们建议在论坛中发帖 - http://forums.mulesoft.com
Mule ESB目前不支持WITH。增强请求(SE-987)已经提出但尚未实施。
工程团队根据优先事项开展JIRA工作。如果您急需JIRA,请提供以下信息,然后我将为您升级JIRA
答案 1 :(得分:0)