| Oracle® Data Provider for .NET開発者ガイド リリース9.2.0.4 部品番号 B13807-01 |
|
Oracle.DataAccess.Typesネームスペース(ODP.NET型)、17/19
OracleRefCursorオブジェクトは、OracleのREF CURSORを表します。
Object
MarshalRefByObject
OracleRefCursor
// C# public sealed class OracleRefCursor : MarshalRefByObject, IDisposable
インスタンス・メソッドではスレッド・セーフティを保証しませんが、すべてのpublic staticメソッドはスレッド・セーフです。
// C# // Example demonstrates how to use a REF CURSOR as an output parameter ... // 1. Assume you have a stored procedure called MyPack.MyProc created with // the following function, which returns 1 REF CURSOR and contains one REF // CURSOR as an output parameter // FUNCTION MyProc (...) // BEGIN // open p_cursor for select * from multimedia_tab; // open p_cursor1 for select * from emp; // return (p_cursor); // END MyProc; // ... // // 2. Assume you have a valid connection // Set the command OracleCommand cmd = new OracleCommand("MyPack.MyProc", con); cmd.CommandType = CommandType.StoredProcedure; // Bind // select * from multimedia_tab; OracleParameter p1 = cmd.Parameters.Add("refcursor1", OracleDbType.RefCursor); p1.Direction = ParameterDirection.ReturnValue; // select * from emp OracleParameter p2 = cmd.Parameters.Add("refcursor2", OracleDbType.RefCursor); p2.Direction = ParameterDirection.Output; // Execute command cmd.ExecuteNonQuery(); ... DataReader reader = p1.Value.GetDataReader(); Console.WriteLine("Field count: " + reader.FieldCount); ...
ネームスペース: Oracle.DataAccess.Types
アセンブリ: Oracle.DataAccess.dll
OracleRefCursorのメンバーを次の表に示します。
OracleRefCursorのstaticメソッドを表5-174に示します。
| メソッド | 説明 |
|---|---|
|
|
|
OracleRefCursorのプロパティを表5-175に示します。
| プロパティ | 説明 |
|---|---|
|
|
OracleRefCursorのインスタンス・メソッドを表5-176に示します。
OracleRefCursorのstaticメソッドを表5-177に示します。
| メソッド | 説明 |
|---|---|
|
|
|
OracleRefCursorのプロパティを表5-178に示します。
| プロパティ | 説明 |
|---|---|
|
|
このプロパティは、REF CURSORデータのフェッチに使用されるOracleConnectionを参照します。
// C# public OracleConnection Connection {get;}
OracleConnection
ObjectDisposedException: オブジェクトがすでに破棄されています。
このプロパティは、設定されるとREF CURSORにバインドされます。OracleRefCursorオブジェクトがコンストラクタによって作成された後、このプロパティは最初はnullになります。OracleRefCursorオブジェクトは、コマンドの実行後にREF CURSORにバインドできます。
接続がクローズされるか、接続プールに返される場合、OracleRefCursorは未初期化状態になり、ここから操作を実行することはできません。ただし、未初期化状態のOracleRefCursorを別のREF CURSORに再割当てすることはできます。
OracleRefCursorのインスタンス・メソッドを表5-179に示します。
このインスタンス・メソッドは、OracleRefCursorオブジェクトによって割り当てられたリソースを破棄します。
// C# public void Dispose();
IDisposable
オブジェクトは、破棄後に再利用することはできません。
Dispose()がコールされると、OracleRefCursorのオブジェクトは未初期化状態になります。引き続きアクセスできるプロパティもありますが、その値は保証されない場合があります。リソースは解放されているため、メソッドのコールにより例外が発生することがあります。
このインスタンス・メソッドは、REF CURSORに対するOracleDataReaderオブジェクトを返します。
// C# public OracleDataReader GetDataReader();
OracleDataReader
OracleDataReaderを使用して、REF CURSORから行をフェッチできます。
|
|
![]() Copyright © 2002, 2003 Oracle Corporation. All Rights Reserved. |
|