Rückgabe eines skalaren Wertes in einer XML-Nachricht

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 zeigt die Verwendung des Schlüsselworts ITEM, um ein einziges Element auszuwählen und einen einzelnen Wert zu erstellen.

SET OutputRoot.MQMD = InputRoot.MQMD;

SET OutputRoot.XML.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-Anweisung in der FROM-Klausel angegeben (am Ende der Feldreferenz steht [] als Hinweis auf eine Feldgruppe), so dass die SELECT-Anweisung 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-Anweisung angeben, häufig nur TRUE für ein einziges Element in der Liste 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.XML.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.XML.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.XML.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 | Rückmeldung
Copyright IBM Corporation 1999, 2005 Letzte Aktualisierung: Nov 17, 2005
ak05770_