Oracle REF CURSOR
更新 : November 2007
.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 ストアド プロシージャを実行する方法について説明します。