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 では、バインドするよう明示的に指定した場合を除き、REF CURSOR データ型が自動的にバインドされることはありません。これは、MSDAORA の場合と同じです。
データ プロバイダーでは、REF CURSOR パラメーターの指定に使用する {resultset} エスケープのような、ODBC エスケープ シーケンスはサポートされていません。
REF CURSOR を返すストアド プロシージャを実行するには、Cursor の OracleType、および Output の Direction を使用して、OracleParameterCollection にパラメーターを定義する必要があります。 データ プロバイダーでは、REF CURSOR のバインドは出力パラメーターとしてのみサポートされています。 プロバイダーは、入力パラメーターとしての REF CURSOR はサポートしていません。
パラメーター値からの OracleDataReader の取得はサポートされていません。 値は、コマンドを実行すると DBNull 型になります。
REF CURSOR を使用する CommandBehavior 列挙型値のみが CloseConnection になります (たとえば、ExecuteReader の呼び出し時)。その他の値はすべて無視されます。
OracleDataReader 内の REF CURSOR の順序は、OracleParameterCollection 内のパラメーターの順序で決まります。 ParameterName プロパティは無視されます。
PL/SQL の TABLE データ型はサポートされていません。 ただし、REF CURSOR は、さらに効果的です。 TABLE データ型を使用しなければならない場合、MSDAORA と共に OLE DB .NET データ プロバイダーを使用してください。
このセクションの内容
REF CURSOR の例
次の 3 つの例を使って REF CURSOR の使い方について説明します。OracleDataReader の REF CURSOR パラメーター
REF CURSOR パラメーターを返し、OracleDataReader として値を読み取る、PL/SQL ストアド プロシージャを実行する方法について説明します。OracleDataReader を使用した複数の REF CURSOR からのデータの取得
REF CURSOR パラメーターを返し、OracleDataReader を使用して値を読み取る、PL/SQL ストアド プロシージャを実行する方法について説明します。1 つまたは複数の REF CURSOR を使用した DataSet の値の設定
2 つの REF CURSOR パラメーターを返し、返された行を DataSet に入力する、PL/SQL ストアド プロシージャを実行する方法について説明します。