Mule 为什么可以';我不能在select语句中使用CTE吗?

Mule 为什么可以';我不能在select语句中使用CTE吗?,mule,common-table-expression,ojdbc,Mule,Common Table Expression,Ojdbc,我有一个运行DB查询的Mule应用程序,它运行得非常好(尽管有点慢)。详情如下: Mule 3.7.2 EE Anypoint Studio 5.4.1 jdk1.7.0_51 使用oracleojdbc6驱动程序 现在,当我使用ojdbc6驱动程序创建数据库连接时,不使用公共表表达式(CTE),查询运行正常(2.5秒) 当我使用CTE时,查询失败,错误如下: org.mule.api.MessagineException:查询类型必须是“[SELECT,STORE\u PROCEDURE\

我有一个运行DB查询的Mule应用程序,它运行得非常好(尽管有点慢)。详情如下:

  • Mule 3.7.2 EE
  • Anypoint Studio 5.4.1
  • jdk1.7.0_51
  • 使用oracle
    ojdbc6
    驱动程序
现在,当我使用
ojdbc6
驱动程序创建
数据库
连接时,不使用公共表表达式(CTE),查询运行正常(2.5秒)

当我使用CTE时,查询失败,错误如下:

org.mule.api.MessagineException
:查询类型必须是“[SELECT,STORE\u PROCEDURE\u CALL]”之一,但为“DDL”(
java.lang.IllegalArgumentException
)。消息负载的类型为:NullPayload

显然,在某个时刻,Mule EE服务器认为我正在尝试执行DDL,而实际上我没有

使用CTE的新查询在SQLDeveloper中运行得非常好(在.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

截至2016年4月27日,Mule不支持CTE声明

我不得不为这件事深挖

    • 我得到的答复是: 如果你还没有,我们也建议你在论坛上发布-

    • 无济于事
  • 然后,我向Mulesoft记录了一份支持记录单(案例编号00107313
    • 我得到的答复是: Mule ESB当前不支持WITH。已提出增强请求(SE-987),但尚未实施
      工程团队根据优先级对JIRAs进行工作。如果此JIRA对您很紧急,请提供以下信息,然后我将为您升级JIRA


现在,您可以通过编写可选select语句来解决此问题,如中所示

这是没有意义的,Mule不支持CTE是非常不幸的