埋め込みSQL タスクを作成する
埋め込みSQLタスクを作成するには以下のようにします。
[タスク環境]メニューから[SQL コマンド]を選択します。[SQL コマンド]ダイアログが表示されます。
[データベース]欄から[データベース一覧]にズームします。
SQL 文を実行するデータベースを選択します。
SQL コマンドの動作について
SQL 文はデータベースによってタスク開始時に実行されます。この段階でエラーが発生すると、メッセージとともにタスクが終了します。
SQLコマンドを利用して、一括更新、一括削除、DDL文、PL/SQL ブロックを実行できます。
SQL コマンドには、以前にDBMS の各機能により開発してコンパイルした、プロシージャ(ストアドプロシジャ)を指定することができます。そのようなプロシージャ名をSQLコマンドとして指定した場合、該当するデータベースプロシージャはRDBMS によって呼び出され、実行されます。これらのストアドプロシジャは、一般のSQL コマンドと同じように使用できます。埋め込みSQL の構成に関する前述の規則はいずれも、ストアドプロシジャにも適用されます。
ストアドプロシジャを実行する
ストアドプロシジャを使用するには、次の形式で予約語「EXEC」を指定します。
EXEC procedure-name parameters |
プロシジャに複数のパラメータを使用することができる場合、パラメータをカンマで区切ります。プロシジャの本文がSELECT文になっている場合、そのプロシジャは通常のSELECT文のように扱ってください。つまり、[オプション/APG]を実行してください。ストアドプロシジャ内では、以下に示すAPGの3つの点に注意する必要があります。
APGはストアドプロシジャを呼び出す際に、ストアドプロシジャにSELECT以外の文が含まれている場合、残りの文を注釈に変更しておきます。
Magic xpaから呼び出されるストアドプロシジャは、パラメータを値として受け取ります。
出力パラメータを結果として得ることができるのはSELECT文の場合に限られます。
MS-SQL Serverでのストアドプロシジャ
戻り値の指定
MS-SQL Serverでのストアドプロシジャで戻り値をサポートします。
これを実現するには、[SQLコマンド]ダイアログで以下の構文を含むステートメントを定義してください。
?= |
例えば以下のように指定します。
EXEC ? = proc_name |
また、[戻り値]欄に変数項目を指定する必要があります。
戻り値がBOOLEANか、ステートメント上で指定された構文または戻り値が含まれていない場合、Magic xpaはストアドプロシジャのステータス(成功/失敗)の表示のみを行います。
結果セットのROWSET
ダイレクトSQL内でどのSELECTステートメントが戻るかを指定することができます。
これを実現するには、[SQLコマンド]ダイアログで以下の構文をSQLステートメントに追加する必要があります。
/*=== ROWSET=n ===*/ |
nは、戻り値として返したいSELECTステートメントの番号
例えば以下のように指定します。
/*=== ROWSET=5 ===*/ |
この場合、5番目の結果セットが返ります。
現存していないROW-IDを指定するとエラーメッセージが返ります。
Magic xpaでは、SQL Serverのストアドプロシジャ内のDSQLステートメントでカーソルを使用することができます。また、結果セットを戻すDSQLステートメントでのカーソルの使用をサポートしています。
これは、ダイレクトSQLステートメントに以下の構文を追加することで可能になります。
/*===CURSOR=Y ===*/ |
明示的なSQL
Magic xpaは、埋め込みSQLやタスク内のDB SQL を使用することで明示的なSQLを記述することができます。作成した構文は、ゲートウェイにそのまま送られ、追加もされずバインドされます。この方法で作成された全てのステートメントは、ANSI形式でデータベースに送られます。Unicode形式は、結果としてSQLタスクに戻される値でのみサポートされます。
関連トピック: