2016-06-22 94 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

相关问题