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

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

PASSTHRU ステートメント

PASSTHRU ステートメントは、式を評価し、その結果の文字ストリングをデータベース・ステートメントとして実行します。

構文図を読む構文図をスキップする
>>-PASSTHRU----------------------------------------------------->

>--+-Expression--+-----------------------+--+------------------------------+-+-><
   |             '-TO--DatabaseReference-'  |            .-,----------.    | |   
   |                                        |            V            |    | |   
   |                                        '-VALUES--(----Expression-+--)-' |   
   |  (1)                                                                    |   
   '-------(--Expression--+-------------------+--)---------------------------'   
                          |    .-,----------. |                                  
                          |    V            | |                                  
                          '-,----Expression-+-'                                  

WHERE

|--DatabaseReference = --Database--.--DataSourceClause----------|

注:
  1. 主要構文図の下半分 (PASSTHRU に渡される Expression をコーディングする 2 つの方法のうちの 2 番目) には、後方互換性のために保存されている構文が説明されています。

使用法

PASSTHRU ステートメントの主な使用法は、データベースに対して (例えば、表を作成するために) 管理コマンドを発行することです。
注: ストアード・プロシージャーを呼び出すには、 PASSTHRU を使用せずに、代わりに CALL ステートメントを使用してください。 これは、PASSTHRU ではいくつかの制限が課されるためです (例えば出力パラメーターを使用できません)。

最初の式が評価され、その結果の文字ストリングは、(TO 文節中の) DatabaseReference で指されているデータベースに渡されて実行されます。 TO 文節を指定しないと、ノードの「データ・ソース」属性によって指されているデータベースが使用されます。

データベース・ストリング中で疑問符 (?) を使用してパラメーターを示します。 パラメーター値は VALUES 文節によって提供されます。

VALUES 文節を指定すると、その式が評価され、パラメーターとしてデータベースに渡されます (つまり、その式の値がデータベース・ステートメント中の疑問符と置換されます)。

VALUE 式が 1 つしかない場合、結果はリストになる場合もならない場合もあります。 リストになる場合は、リストのスカラー値が順番に疑問符と置換されます。 リストにならない場合は、単一のスカラー値がデータベース・ステートメント中の (単一の) 疑問符と置換されます。 複数の VALUE 式がある場合は、 どの式もリストに評価されず、代わりに式のスカラー値が順番に疑問符と置換されます。

データベース・ステートメントはユーザー・プログラムによって構成されるので、 パラメーター・マーカー (つまり疑問符) または VALUES 文節を使用することは重要ではありません。 なぜなら、そのプログラムによってデータベース・ステートメント全体をリテラル・ストリングとして提供できるからです。 しかし、パラメーター・マーカーを使用すると、さまざまなステートメントを作成してデータベースやブローカーに保管する必要が少なくなるので、使用可能な場合は必ずパラメーター・マーカーを使用してください。

データベース参照

データベース参照は、メッセージ・ツリーの参照に使用されるフィールド参照の特殊なインスタンスです。 この参照は、Database という語と、その後のデータ・ソースの名前 (つまり、データベース・インスタンスの名前) から成ります。

データ・ソース名は直接指定するか、または式を中括弧 ({...}) で囲んで指定できます。 直接指定したデータ・ソース名は、名前置換の対象になります。 つまり、使用している名前が既知の名前になるよう宣言されている場合、名前自体ではなく宣言済みの名前の値が使用されます (DECLARE ステートメントを参照)。

以下のノードの 1 つを含むメッセージ・フローが作成されており、このノードと関連している ESQL に PASSTHRU ステートメントとデータベース参照とが含まれている場合、関連ノードのデータ・ソース・プロパティーの値を指定する必要があります。
  • Compute
  • Database
  • Filter

エラーの処理

PASSTHRU 操作中にエラーが起きる可能性があります。 例えば、データベースが操作可能でなくなったり、ステートメントが無効だったりする場合があります。 その場合 (ノードの「データベース・エラーで例外をスロー」プロパティーがクリアされているのでない限り)、 例外がスローされます。 これらの例外は、該当する SQL コード、状態、ネイティブ・エラー、およびエラー・テキストの値を設定し、エラー・ハンドラーで処理できます (DECLARE HANDLER ステートメントを参照)。

データベース・エラーの処理について詳しくは、 データベース状態のキャプチャーを参照してください。

以下の例では、データベース DSN1 中のスキーマ Shop 中に表 Customers を作成します。
PASSTHRU 'CREATE TABLE Shop.Customers (
  CustomerNumber INTEGER,
  FirstName      VARCHAR(256),
  LastName       VARCHAR(256),
  Street         VARCHAR(256),
  City           VARCHAR(256),
  Country        VARCHAR(256)
)' TO Database.DSN1;
最後の例のように、ESQL ステートメントをストリング・リテラルとして指定する場合は、その前後に単一引用符を付けなければなりません。 しかし、変数として指定する場合は、引用符を省略します。 以下に例を示します。
SET myVar = 'SELECT * FROM user1.stocktable';
SET OutputRoot.XMLNS.Data[] = PASSTHRU(myVar);
以下の例では、データベース DSN1 中のスキーマ Shop から表 Customers を「ドロップ」(つまり削除) します。
PASSTHRU 'DROP TABLE Shop.Customers' TO Database.DSN1; 
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

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


参照トピック参照トピック | バージョン 8.0.0.5 | ak05100_