SQLEXECUTE 操作のメッセージ スキーマ
Microsoft BizTalk Adapter for Oracle Database は、LOB システムに存在する成果物の厳密に型指定されたメタデータを表示し、これらの成果物に対する標準操作を公開します。 ただし、アプリケーションでは、アプリケーションのビジネス ロジックによって駆動される任意の SQL ステートメントの実行が必要になる場合があります。 たとえば、次のような場合があります。
Oracle Database アダプターによって表示されないデータベース成果物に対して操作を実行します。たとえば、Oracle シーケンスのカーバルまたは NEXTVAL を取得します。
データ定義言語操作を実行する。たとえば、テーブルを作成します。
デザイン時に存在しなかったデータベース成果物に対して操作を実行します。たとえば、ビジネス ロジックによって作成された一時テーブル内のレコードを更新します。
Oracle Database アダプターによって表示される操作よりも、テーブルに対してより複雑な DML 操作を実行します。たとえば、JOIN 句を含むクエリを実行します。
Oracle Database アダプターは、このようなシナリオをサポートするために SQLEXECUTE 操作と呼ばれる特別な操作を表示します。 この操作を使用すると、Oracle データベース アダプターが Oracle データベースで実行される任意の SQL ステートメントを指定できます。 SQL ステートメントに対して複数の入力パラメーター ブロックを指定することもできます。 Oracle Database アダプターは、パラメーターのセットごとに SQL ステートメントを 1 回実行し、ジェネリック (弱く型指定された) レコード セットとして出力を返します。
Note
IN および IN OUT パラメーターは、SQLEXECUTE 操作のプロシージャ、関数、およびパッケージに渡すことができます。 呼び出された成果物は、Oracle データベースで指定されたパラメーターを使用して実行されます。ただし、SQLEXECUTE 操作では、OUT パラメーターと IN OUT パラメーターの値はクライアントに返されません。 プロシージャ、関数、またはパッケージを呼び出す場合は、Oracle Database アダプターがこれらの Oracle 成果物に対して公開する専用の操作を呼び出して呼び出すことをお勧めします。
次の XML は、SQLEXECUTE 操作の構造を示しています。
<SQLEXECUTE xmlns="SQLEXECUTE">
<SQLSTATEMENT> [STATEMENT] </SQLSTATEMENT>
<PARAMETERSCHEMA>[PARAM_SPEC]</PARAMETERSCHEMA>
<PARAMETERSET>
<PARAMETERDATA>
<PARAMETER xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<c:string>[PARAM_VAL_1]</c:string>
</PARAMETER>
</PARAMETERDATA>
…
</PARAMETERSET>
</SQLEXECUTE>
[STATEMENT] = 実行する SQL ステートメント。たとえば、"SELECT * from emp WHERE empno=:emp_no" などです。
[PARAM_SPEC] = SQL ステートメント内の IN パラメーターとそのデータ型の一覧。たとえば、"emp_no NUMBER" などです。
[PARAM_VAL_1] = 最初のパラメーターの値。
各 <PARAMETERDATA> セクションには、PARAMETERSCHEMA> セクションのスキーマに一致する PARAMETER> 要素の<完全なセットが<含まれています。 PARAMETERSET> には<、複数の <PARAMETERDATA> セクションを含めることができます。 この場合、SQL ステートメントは、各パラメーター セットに対して 1 回、複数回実行されます。