Skalarwert in einer Nachricht zurückgeben

Verwenden Sie eine SELECT-Anweisung, um einen skalaren Wert zurückzugeben, indem Sie die Schlüsselwörter THE und ITEM einschließen.

Beispiel:

1 + THE(SELECT ITEM T.a FROM Body.Test.A[] AS T WHERE T.b = '123')

Verwendung des Schlüsselworts ITEM

Das folgende Beispiel veranschaulicht die Verwendung des Schlüsselworts ITEM zur Auswahl eines Elements und zur Erstellung eines einzelnen Werts.

SET OutputRoot.MQMD = InputRoot.MQMD;

SET OutputRoot.XMLNS.Test.Result[] = 
   (SELECT ITEM T.UnitPrice FROM InputBody.Invoice.Purchases.Item[] AS T);

Wenn die Invoice-Nachricht als Eingabe empfangen wird, generiert die genannte ESQL-Anweisung die folgende Ausgabenachricht:

<Test>
  <Result>27.95</Result>
  <Result>42.95</Result>
  <Result>59.99</Result>
</Test>

Bei Angabe des Schlüsselworts ITEM enthält die Ausgabenachricht eine Liste mit skalaren Werten. Vergleichen Sie diese Nachricht mit derjenigen, die ohne das Schlüsselwort ITEM erstellt und in der eine Liste von Feldern (Name/Wert-Paare) generiert wird:

<Test>
  <Result>
    <UnitPrice>27.95</UnitPrice>
  </Result>
  <Result>
    <UnitPrice>42.95</UnitPrice>
  </Result>
  <Result>
    <UnitPrice>59.99</UnitPrice>
  </Result>
</Test>

Auswirkungen des Schlüsselworts THE

Das Schlüsselwort THE konvertiert eine Liste, die ein einziges Element enthält, in das Element selbst.

In den beiden vorherigen Beispielen wurde eine Liste als Quelle für die SELECT-Funktion in der FROM-Klausel angegeben (am Ende der Feldreferenz steht [] als Hinweis auf eine Feldgruppe), so dass die SELECT-Funktion normalerweise eine Liste von Ergebnissen generiert. Aus diesem Grund müssen Sie eine Liste als Ziel der Zuordnung angeben (deshalb das "Result[]" als Ziel der Zuordnung). Sie wissen jedoch, dass die WHERE-Klausel, die Sie als Teil der SELECT-Funktion angeben, häufig nur für ein einziges Element in der Liste TRUE zurückgibt. Verwenden Sie in diesem Fall das Schlüsselwort THE.

Das folgende Beispiel zeigt die Wirkung des Schlüsselworts THE:

SET OutputRoot.MQMD = InputRoot.MQMD;

SET OutputRoot.XMLNS.Test.Result =              
    THE (SELECT T.Publisher, T.Author FROM InputBody.Invoice.Purchases.Item[] 
         AS T WHERE T.UnitPrice = 42.95);

Das Schlüsselwort THE bedeutet, dass OutputRoot.XMLNS.Test.Result zum Ziel der Zuordnung wird ("[]" ist nicht zulässig). Durch die Verwendung des Schlüsselworts wird folgende Ausgabenachricht generiert:

<Test>
  <Result>
    <Publisher>Morgan Kaufmann Publishers</Publisher>
    <Author>Don Chamberlin</Author>
  </Result>
</Test>

Auswahl aus einer Liste von Skalarwerten

Betrachten Sie die folgende Mustereingabenachricht:

<Test>
 <A>1</A>
 <A>2</A>
 <A>3</A>
 <A>4</A>
 <A>5</A>
</Test>

Zur Verarbeitung dieser Nachricht werden folgende ESQL-Anweisungen codiert:

SET OutputRoot.XMLNS.Test.A[] = 
  (SELECT ITEM A from InputBody.Test.A[]  
   WHERE CAST(A AS INTEGER) BETWEEN 2 AND 4);

Als Ergebnis wird folgende Ausgabenachricht generiert:

      <A>2</A>
      <A>3</A>
      <A>4</A>
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:29:32

ak05770_