次の方法で共有


Oracle のテーブルとビューに対する挿入、更新、削除、および選択操作

Microsoft BizTalk Adapter for Oracle Database では、各 Oracle データベース テーブルとビューに対する一連の標準操作が表示されます。 これらの操作を使用すると、ターゲット テーブル (またはビュー) の WHERE 句によって修飾された単純な SQL INSERT、UPDATE、SELECT、DELETE ステートメントを実行できます。 これらの操作は、データ操作言語 (DML) 操作とも呼ばれます。 JOIN 演算子を使用する SQL SELECT クエリなど、より複雑な操作を実行するには、SQLEXECUTE 操作を使用できます。 SQLEXECUTE 操作の詳細については、「 Oracle Database での SQLEXECUTE 操作」を参照してください。

次の表は、Oracle Database アダプターがサポートする DML 操作を示しています。

操作 説明
挿入 ターゲット テーブルまたはビューに対して挿入操作を実行します。 挿入操作では、ターゲット テーブルまたはビューへの複数のレコードまたは一括挿入がサポートされます。

- 複数レコード挿入操作では、指定されたレコード セットに基づいてテーブルまたはビューに行が挿入されます。

- 一括挿入操作では、指定された SQL SELECT クエリと列リストに基づいて、テーブルまたはビューに行が挿入されます。 クエリから返されるレコードは、列リストに基づいてターゲット テーブルに挿入されます。

挿入操作の戻り値は、挿入された行の数です。

メモ: 複数レコード挿入と一括挿入の両方を同じメッセージに結合することはできません。

InlineValue

複数レコード挿入操作のすべての単純なデータ レコードに対して、 InlineValue という省略可能な属性の値を指定することで、レコードの値をオーバーライドできます。 InlineValue 属性を使用すると、シーケンスを使用して主キー列を設定したり、システム日付 (SYSDATE を使用) を日付列に挿入したりするなどの計算値をテーブルまたはビューに挿入できます。 たとえば、次の INSERT ステートメントでは次のようになります。

<Insert xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY"> <RECORDSET> <ACCOUNTACTIVITYRECORDINSERT> <ACCOUNT>10001</ACCOUNT> <EMPNAME>John</EMPNAME> <AMOUNT>1500</AMOUNT> <TRANSDATE InlineValue="SYSDATE">2008-06-21T15:52:19</TRANSDATE> </ACCOUNTACTIVITYRECORDINSERT > </RECORDSET> </Insert>

TRANSDATE 列の値として "2008-06-21T15:52:19" が指定されていても、InlineValue 属性 "SYSDATE" (システム日付) の値がターゲット テーブルに挿入されます。

InlineValue 属性の使用中:

- InlineValue 属性に定数値を使用しないでください。 たとえば、INSERT ステートメントで を指定 <EMPNAME InlineValue="John"/> すると、エラーが発生します。 これは、InlineValue 属性の値がそのまま Oracle に渡され、この場合 、John は Oracle データベースに渡され、予期される値ではありません (予期される値は 'John' です)。 従業員名の周囲に単一引用符を使用する必要があります。 (例: <EMPNAME InlineValue="’John’"/>)。

- InlineValue 属性に対して選択クエリを使用する場合は、SELECT ステートメントをかっこで囲み、選択クエリが 1 つのレコードのみをフェッチするようにする必要があります。 (例: <EMPNAME InlineValue="(SELECT NAME FROM MS_SAMPLE_EMPLOYEES WHERE ID=123)"/>)。

メモ: Oracle データベースで要素が NOT NULL としてマークされている場合は、インライン値を指定した場合でも、その要素の値を指定する必要があります。 これを行わないと、スキーマの検証が失敗します。
Select 指定された列名の一覧と SQL WHERE 句を指定するフィルター文字列に基づいて、ターゲット テーブルまたはビューに対して SQL SELECT クエリを実行します。

Select 操作の戻り値は、指定された列と行を含む厳密に型指定された結果セットです。
更新 ターゲット テーブルまたはビューに対して Update 操作を実行します。 更新するレコードは、SQL WHERE 句を指定するフィルター文字列によって指定されます。 更新プログラムの値は、テンプレート レコードで指定されます。

Update 操作の戻り値は、更新された行数です。
削除 フィルター文字列で指定された SQL WHERE 句に基づいて、ターゲット テーブルまたはビューに対して Delete 操作を実行します。

Delete 操作の戻り値は、削除された行の数です。

詳細情報は、次のとおりです。

参照

アダプターを使用して実行できる操作