powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Теоретический вопрос. Курсор из SELECT * FROM TABLE()
1 сообщений из 1, страница 1 из 1
Теоретический вопрос. Курсор из SELECT * FROM TABLE()
    #39648941
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть процедурина, возвращает SYS_REFCURSOR

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE OR REPLACE PROCEDURE test_ref(o_cur OUT SYS_REFCURSOR) IS
  t_list SYS.ODCIVARCHAR2LIST := SYS.ODCIVARCHAR2LIST();
BEGIN

  t_list.extend;
  t_list(1) := 'AAA';

  OPEN o_cur FOR
  SELECT * FROM TABLE(t_list);

END;




Процедурина прекрасно работает. Курсор открывается, возвращается, всё фетчится на клиенте.

Меня гложут следующие вопросы, на которые не хватает моих познаний:
1) Переменная t_list - локальная. Откуда фетчатся данные после того как процедура завершила работу и вернула курсор?
2) В какой момент освободится память, занимаемая переменной t_list (освободится ли вообще?)
3) Надо ли что-то специально делать со стороны клиента для этого? (типа курсора закрыть после фетча)








--------------------------------------------------------------
Запомните, товарищи офицеры, чтобы ничего не делать, надо уметь делать все.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Теоретический вопрос. Курсор из SELECT * FROM TABLE()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]