@vayho

Закрывается ли курсор в for loop statement в Oracle при выходе из функции?

В официальной документации не описано что происходит с курсором, если вызвать RETURN внутри CURSOR FOR LOOP STATEMENT. Возможно я что-то недопонял, поэтому спрашиваю здесь, закрывается ли курсор или нет?

Может кто-то встречался с подобной ситуацией в процессе работы и точно знает, либо может подсказать — куда рыть?


Примерное описание функции:
FUNCTION FUNC_NAME RETURN  VARCHAR2
AS
    CURSOR cursor_name IS SELECT DISTINCT field_name FROM table_name;               
BEGIN
    FOR row IN cursor_name LOOP
        RETURN NULL; -- Закроется ли курсор после выполнения этой строки?
    END LOOP;
    RETURN NULL;
END FUNC_NAME;

Код не рабочий, написан дабы дать понять о чем вопрос.


Ссылка на офф документацию docs.oracle.com/cd/E11882_01/appdev.112/e17126/cur....
  • Вопрос задан
  • 3584 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Vladimir_Izotov
Во время исключительной ситуации курсор закрывается автоматически. Думаю, что во время возврата тоже.
Быстрый поиск дал вот это:
Oracle PL / SQL For Dummies. Авторы: Michael Rosenblum,Paul Dorsey
страница 152
Найдено по этой ссылке.
Ответ написан
mgramin
@mgramin
Вот здесь комментарии интересные и несколько полезных ссылок — www.sql.ru/forum/1027878/chto-esli-ne-zakryvat-kursor-v-pl-sql?hl=%e7%e0%ea%f0%fb%f2%e8%e5%20%ea%f3%f0%f1%ee%f0%e0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы