我有一個看起來像這樣的Pl/Sql過程簽名C#和PlSql光標
foo(param1 IN type1, param2 IN type1, c OUT REF CURSOR)
。
這個存儲過程在C#中被調用。在C#代碼中,我用這個遊標填充一個DataTable。我想知道光標什麼時候會關閉。
我應該關閉它在SP?在代碼中?或者當我調用Dispose方法時(因爲它沒有Close方法),OracleRefCursor會關閉它?
感謝
編輯:下面是代碼的一些例子中,我使用
存儲過程:
create or replace procedure foo1(param1 IN type1, param2 IN type1, c OUT REF CURSOR)
IS
BEGIN
OPEN c
FOR
SELECT x
FROM table;
END;
create or replace procedure foo2(param3 IN type1, param4 IN type1, c OUT REF CURSOR)
IS
temp type1 := param3;
x type1;
BEGIN
LOOP temp < param4
foo1(temp, param4, c);
FETCH c INTO x;
temp := temp +1;
END LOOP;
END;
感謝
你有一些使用c#和plsql遊標的例子嗎? 因爲我最近發佈了問題,最近沒有人回答 – tga 2010-01-13 13:48:56
我已經添加了一些代碼 – ALOToverflow 2010-01-13 14:04:21
你能告訴我一些c#樣本嗎?因爲我在用DataReader從Cursor讀取時遇到問題。有很多DataAdapter的例子,但沒有DataReader的例子。提前Thanx。 – tga 2010-01-13 14:10:32