2016-06-22 16 views
0

Ich muss einige Änderungen in einem bestehenden Mule-Flow mit wenig Wissen machen und obwohl ich einige Tage damit verbracht habe, Online-Dokumentation und mögliche Lösungen zu lesen, kann ich nicht herausfinden, warum diese Abfrage fehlschlägt, da ich auch dynamischere Abfragen habe in meinem Flow mit # [xxx] Parametern. Die Abfrage lautet wie folgt:Warum diese einfache Abfrage in einem Mule-Flow fehlschlägt?

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)) 

Und der Fehler was ich habe ist:

Nachricht: Index: 0 (java.lang.IndexOutOfBoundsException). Nutzlast: {fecha_solicitud = 2016.06.22, moneda = USD, client_id = RIVERA, user_ip = 127.0.0.1, request_times = 0} Payload Typ: java.util.LinkedHashMap Element: /OANDAFlow/Verarbeiter/3 @ oanda: oanda.xml: 126 Element XML: ausgewählten Zeiten von user_requestwhere ip_address = SUBSTR (# [message.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS], 2, INSTR (# [message.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS], ':') - 2) und request_date = CAST (CURRENT_DATE als varchar2 (8))>

Anmerkung: Die Transformation von VARCHAR Das Datum ist, weil die Spalte request_date Varchar ist.

Ich habe diese Abfrage direkt in der Oracle-SQL-Entwickler versucht #[message.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS] mit und Beispiel wie /127.0.0.1:55406 ersetzt und es funktionierte gut so, warum durch mule ausfällt ???

Antwort

1

Eines der Felder in der Abfrage einen Zeichenfolge erwartet Wert versuchen, einen Apostroph zu setzen .. es würde funktionieren,

Try this 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

Das war das genaue Problem, danke! – Arcones

+0

np .. njoy !! :) – scorpion

3

Im ersten: #m essage.inboundProperties.MULE_REMOTE_CLIENT_ADDRESS] Sie vermissen ein [

+0

Eigentlich hatte ich die Klammer in dem Code, ich weiß nicht, ob die Kopie Paste I umgewandelt b bekam haben y dieser Seiteneditor ... Danke auf jeden Fall! – Arcones