У меня есть подпись процедуры Pl / Sql, которая выглядит следующим образом
foo(param1 IN type1, param2 IN type1, c OUT REF CURSOR)
.
Эта хранимая процедура вызывается в C #. В коде C # я заполняю таблицу данных этим курсором. Я хотел бы знать, когда курсор будет закрыт.
Должен ли я закрыть его в SP? В коде? Или объект OracleRefCursor закроет его, когда я вызову метод Dispose (потому что у него нет метода 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;
Спасибо