Skalarwert in einer XML-Nachricht zurückgeben

Verwenden Sie eine SELECT-Anweisung, um einen Skalarwert zurückzugeben, und fügen Sie die Schlüsselwörter THE und ITEM ein. 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.XML.Test.Result[] = 
   (SELECT ITEM T.UnitPrice FROM InputBody.Invoice.Purchases.Item[] AS T);

Wenn die Nachricht 'Invoice' (Rechnung) als Eingabe empfangen wird, generiert der gezeigte ESQL-Code folgende Ausgabenachricht:

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

Wenn das Schlüsselwort ITEM angegeben wird, enthält die Ausgabenachricht eine Liste mit Skalarwerten. Vergleichen Sie diese Nachricht mit der Nachricht, die erstellt wird, wenn das Schlüsselwort ITEM weggelassen wird; in dieser Nachricht wird eine Liste mit Feldern (Name/Wert-Paaren) generiert:

<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 Element enthält, in das Element selbst.

In den beiden vorherigen Beispielen wurde eine Liste als Quelle von SELECT in der FROM-Klausel angegeben (der Feldverweis enthält '[]' am Ende, um eine Feldgruppe anzugeben), d. h., normalerweise generiert SELECT eine Liste mit Ergebnissen. Deshalb müssen Sie eine Liste als Ziel der Zuordnung angeben (also "Result[]" als Ziel der Zuordnung). Es ist jedoch oft der Fall, dass die WHERE-Klausel, die sie als Teil der SELECT-Klausel angeben, nur für ein Element der Liste TRUE zurückgibt. Verwenden Sie in diesem Fall das Schlüsselwort THE.

Das folgende Beispiel zeigt die Auswirkung der Verwendung 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, 2006 Letzte Aktualisierung: 23. Aug. 2006
ak05770_