【发布时间】:2016-03-21 22:25:34
【问题描述】:
我有一个运行数据库查询的 Mule 应用程序,它运行得非常好(虽然有点慢)。详情如下:
- 骡 3.7.2 EE
- Anypoint Studio 5.4.1
- jdk1.7.0_51
- 使用oracle
ojdbc6驱动
现在,当我使用 ojdbc6 驱动程序创建 database 连接时,不使用公用表表达式 (CTE),查询运行良好(2.5 秒)。
当我使用我的 CTE 时,查询失败并出现错误:
org.mule.api.MessagingException:查询类型必须是“[SELECT, STORE_PROCEDURE_CALL]”之一,但为“DDL”(java.lang.IllegalArgumentException)。消息负载的类型:NullPayload
很明显,Mule EE 服务器在某些时候认为我正在尝试执行 DDL,而我并没有。
使用 CTE 的新查询在 SQL Developer 中运行良好(0.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
【问题讨论】:
标签: mule common-table-expression ojdbc