次の方法で共有


Oracle REF CURSOR

.NET Framework Data Provider for Oracle では、Oracle REF CURSOR データ型がサポートされています。 データ プロバイダーを使用して Oracle REF CURSOR を操作する場合は、次の動作を考慮する必要があります。

一部の動作は、Microsoft OLE DB Provider for Oracle (MSDAORA) とは異なります。

  • パフォーマンス上の理由から、DATA Provider for Oracle では、明示的に指定しない限り、MSDAORA のように REF CURSOR データ型は自動的にバインドされません。

  • データ プロバイダーは、REF CURSOR パラメーターの指定に使用される {resultset} エスケープを含め、ODBC エスケープ シーケンスをサポートしていません。

  • REF CURSOR を返すストアド プロシージャを実行するには、カーソルOracleType出力Directionを使用して、OracleParameterCollection内のパラメーターを定義する必要があります。 データ プロバイダーでは、REF CURSOR を出力パラメーターとしてのみバインドできます。 プロバイダーは、入力パラメーターとして REF CURSOR をサポートしていません。

  • パラメーター値からの OracleDataReader の取得はサポートされていません。 値は、コマンドの実行後 DBNull 型です。

  • REF CURSOR で動作する唯一の CommandBehavior 列挙値 (たとえば、 ExecuteReaderを呼び出すとき) は CloseConnection です。それ以外はすべて無視されます。

  • OracleDataReader の REF CURSOR の順序は、OracleParameterCollection のパラメーターの順序によって異なります。 ParameterName プロパティは無視されます。

  • PL/SQL TABLE データ型はサポートされていません。 ただし、REF CURSOR の方が効率的です。 TABLE データ型を使用する必要がある場合は、MSDAORA で OLE DB .NET データ プロバイダーを使用します。

このセクションにて

REF CURSOR の例
REF CURSOR の使用方法を示す 3 つの例が含まれています。

OracleDataReader の REF CURSOR パラメーター
REF CURSOR パラメーターを返し、 値を OracleDataReader として読み取る PL/SQL ストアド プロシージャを実行する方法を示します。

OracleDataReader を使用して複数の REF CURSOR からデータを取得する
2 つの REF CURSOR パラメーターを返し、 OracleDataReader を使用して値を読み取る PL/SQL ストアド プロシージャを実行する方法を示します。

1 つ以上の REF CURSOR を使用したデータセットの入力
2 つの REF CURSOR パラメーターを返し、返された行を DataSet に入力する PL/SQL ストアド プロシージャを実行する方法を示します。

こちらも参照ください