我有一个这样的PL/SQL过程签名
foo(param1 IN type1, param2 IN type1, c OUT REF CURSOR)
.
正在C中调用此存储过程。在C代码中,我用这个光标填充一个数据表。我想知道光标何时关闭。
我应该在SP中关闭它吗?在代码中?或者当我调用Dispose方法(因为它没有Close方法)时,对象或ClerefCursor将关闭它?
谢谢
编辑:下面是一些我正在使用的代码示例
存储进程:
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;
谢谢