2016-03-21 4 views
1

У меня есть приложение Mule, выполняющее запрос БД, который работает отлично (хотя и немного медленнее). Это деталь:Почему я не могу использовать CTE в моей инструкции select?

  • Mule 3.7.2 EE
  • AnyPoint Студия 5.4.1
  • jdk1.7.0_51
  • Использование оракула ojdbc6 драйвера

Теперь, когда я создаю database соединение используя драйвер ojdbc6, без использования выражения Common Table Expression (CTE) запрос выполняется нормально (через 2,5 секунды).

Когда я использую мой КТР, запрос завершается с ошибкой:

org.mule.api.MessagingException : Query type must be one of '[SELECT, STORE_PROCEDURE_CALL]' but was 'DDL' (java.lang.IllegalArgumentException). Message payload is of type: NullPayload

Ясно в какой-то момент сервер Mule EE думает, что я пытаюсь выполнить DDL, когда я не.

Новый запрос, используя CTE, отлично работает (на .250 с) в SQL Developer, поэтому я знаю, что это не мой запрос.

Почему я не могу использовать инструкцию CTE (WITH) в Mule?

Это известная проблема? Я делаю что-то неправильно?


запросов (упрощенный) перед КТР:

SELECT '1' AS COLUMN_ONE, 'X' AS COLUMN_X 
FROM DUAL 

запросов (упрощенный) после того, как СТЕ:

WITH TBL AS 
(
    SELECT '1' AS COLUMN_ONE, 'X' AS COLUMN_X 
    FROM DUAL 
) 
SELECT * FROM TBL 

ответ

1

По состоянию на 2016-04-27 КТР заявлении не поддерживается Mule.

Мне приходилось копать глубоко для этого.

  • I tweeted this question and tagged @MuleSoft and @MuleDev
    • На что я получил ответ:

      if you haven't already we'd also suggest posting this in the forums - http://forums.mulesoft.com

  • I then posted the issue on the Mulesoft Forums
    • Чтобы без толку
  • Затем я вошел в службу поддержки с Mulesoft (номер дела)
    • На что я получил ответ:

      WITH is not currently supported by Mule ESB. Enhancement request(SE-987) has been raised but not implemented yet.
      Engineering team work on JIRAs based on the priorities. If this JIRA is urgent to you, please provide the following information then I will escalate the JIRA for you

0

Сейчас вы можете решить эту проблему написания альтернатива выбора как в

Sql - alternative to WITH ... AS

Это не имеет смысла и очень неудачно для Mule не поддерживать CTE

Смежные вопросы