【发布时间】:2010-01-13 13:32:21
【问题描述】:
我有一个像这样的 Pl/Sql 过程签名
foo(param1 IN type1, param2 IN type1, c OUT REF CURSOR).
这个存储过程在 C# 中被调用。在 C# 代码中,我用这个光标填充了一个 DataTable。我想知道光标什么时候关闭。
我应该在 SP 中关闭它吗?在代码中?还是当我调用 Dispose 方法时对象 OracleRefCursor 会关闭它(因为它没有 Close 方法)?
谢谢
编辑:这是我正在使用的代码的一些示例
存储过程:
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 游标的例子吗?因为我最近发布了问题,没有人回答
-
你能给我看一些c#示例吗?因为我在使用 DataReader 从 Cursor 读取时遇到问题。 DataAdapter 有很多示例,但 DataReader 没有。提前致谢。
-
我正在使用 DataAdapter.Fill() 方法用光标填充 DataTable。