WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

メッセージでスカラー値を戻す

SELECT ステートメントを使用して、THEITEM キーワードの両方を組み込むことによって、スカラー値を戻します。

以下に例を示します。

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

ITEM キーワードの使用

以下の例は、ITEM キーワードの使用を示しています。このキーワードは、1 つの項目を選択して、単一の値を作成します。

SET OutputRoot.MQMD = InputRoot.MQMD;

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

Invoice メッセージを入力として受け取る場合、ESQL は次の出力メッセージを生成します。

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

ITEM キーワードが指定された場合、出力メッセージにはスカラー値のリストが含まれます。 このメッセージを、ITEM キーワードを省略した場合に生成されるメッセージと比較してみましょう。フィールドのリスト (名前と値のペア) が生成されます。

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

THE キーワードの効果

THE キーワードは、1 つの項目を含むリストを、項目自体に変換します。

前の 2 つの例は両方とも、リストを FROM 文節の SELECT のソースとして指定したため (配列を示すためにフィールド参照の最後に [] がある)、通常、SELECT 関数は結果のリストを生成します。 この動作のため、リストを代入先として指定する必要があります (つまり、代入先として "Result[]" を指定します)。 しかし、大抵の場合、SELECT の一部として指定する WHERE 文節は、リスト内の 1 つの項目に対してのみ TRUE を戻すことが分かります。 この場合、THE キーワードを使用します。

以下の例は、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);

THE キーワードは、代入先が OutputRoot.XMLNS.Test.Result になることを意味します。("[]" は許可されません。) THE キーワードを使用すると次の出力メッセージが生成されます。

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

スカラーのリストからの選択

次のサンプル入力メッセージをご覧ください。

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

次の ESQL ステートメントをコード化してこのメッセージを処理すると、

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

次の出力メッセージが生成されます。

      <A>2</A>
      <A>3</A>
      <A>4</A>
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:47:30


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | ak05770_