2016-06-22 95 views
0

我不得不在現有的騾流中做一些改動,雖然我已經花了一些時間閱讀在線文檔和可能的解決方案,但我無法弄清楚爲什麼這個查詢失敗了,因爲我也有更多的動態查詢在我的流##[xxx]參數。查詢如下:爲什麼這個簡單的查詢在騾流中失敗?

select times from user_request where 
ip_address=SUBSTR(#message.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS],2,INSTR(#[message.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS], ':')-2) 
    and request_date=CAST(CURRENT_DATE as varchar2(8)) 

而且我得到的錯誤是:

消息:索引:0 (java.lang.IndexOutOfBoundsException)。有效負載: {fecha_solicitud = 2016-06-22,moneda = USD,client_id = RIVERA, user_ip = 127.0.0.1,request_times = 0}有效負載類型: java.util.LinkedHashMap元素: /OANDAFlow/processors/3 @ OANDA:oanda.xml:126元素XML: 從user_requestwhere IP_ADDRESS = SUBSTR選定時間(#[message.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS],2,INSTR(#[message.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS], ':') - 2- )和REQUEST_DATE = CAST(CURRENT_DATE如 VARCHAR2(8))>

註釋:轉換至的VARCHAR日期是因爲列request_date是varchar。

我試過這個查詢,直接在Oracle SQL開發者中用#[message.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS] 代替,例如/127.0.0.1:55406,它工作正常,所以爲什麼通過mule失敗?

回答

1

您查詢的字段需要一個字符串值試圖把一個單引號..它的工作,

試試這個 select times from user_request where ip_address=SUBSTR('#message.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS]',2,'INSTR(#[message.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS]', ':')-2) and request_date=CAST(CURRENT_DATE as varchar2(8))

+0

這是確切的問題,謝謝! – Arcones

+0

np .. njoy !! :) – scorpion

3

在第一:#M essage.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS]你缺少一個[

+0

其實我在代碼中的支架上,我不知道,如果複製粘貼我沒有得到轉化b Ÿ這個頁面編輯器...謝謝在任何情況下! – Arcones

相關問題