2016-03-31 11 views
0

Ich versuche eine gespeicherte Prozedur zu schreiben, die dynamisch funktioniert. Wenn ich zum Beispiel drei Abfrageparameter vom Browser an den Fluss übergebe, sollte es der gespeicherten Prozedur zugewiesen werden und nur die Werte aus der Datenbank abrufen, für die die übergebenen Werte gelten. (Hinweis: Ich verwende Select-Abfrage in meiner gespeicherten Prozedur). Ich sollte in der Lage sein, eine Anzahl von Abfrageparametern zu übergeben. Könnte mir jemand dabei helfen?Können wir die Anzahl der Abfrageparameter zählen, die über den Browser in Mule übergeben werden

Antwort

0

Für Ihre Abfrage, wie die Abfrageparameter Schlüsselnamen erhalten:

Verwenden unten Ausdruck, um den ersten Abfrageparameter-Schlüsselnamen zu erhalten. Ändern Sie den Indexwert basierend auf der Abfrageparameternummer.

#[message.inboundProperties.'http.query.params'.keySet().toArray()[0]] 

Siehe folgenden Beispielcode, der die Abfrage-Parameter und speichert iteriert über jeden Abfrageparameter Schlüsselnamen in Variable dann in Logger drucken.

<foreach collection="#[message.inboundProperties.'http.query.params'.keySet()]" doc:name="For Each"> <set-variable variableName="QueryPramKey" value="#[payload]" doc:name="Variable"/> <logger message="--- Query param kay names: #[flowVars.QueryPramKey]" level="INFO" doc:name="Logger"/>

+0

@ RamakrishnaN Vielen Dank. Endlich habe ich das Ergebnis, das ich wollte. – mani24991

+0

@ mani24991 Wenn Sie irgendeine Antwort nützlich finden, akzeptieren Sie bitte die Antwort oder die Abstimmung. Dies wird anderen Menschen helfen, Antworten zu finden. – RamakrishnaN

0

Die Abfrage params sind als Karte zur Verfügung, so dass Sie .Size einfach anrufen kann():

message.inboundProperties['http.query.params'].size() 
+0

Hallo Ryan Carter, Danke. Gibt es eine Möglichkeit, auf den Schlüssel des Abfrageparams zuzugreifen? Zum Beispiel, wenn ich einen Abfrageparameter übergebe SourceQueue = mqinput. Wie kann die "SourceQueue" in einer Variablen gespeichert werden? Ich kann auf den "mqinput" zugreifen, aber nicht auf "SourceQueue". – mani24991

Verwandte Themen