Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Из коллекции коллекций в sys_refcursor / 4 сообщений из 4, страница 1 из 1
30.08.2019, 08:27
    #39855427
=Nike=
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из коллекции коллекций в sys_refcursor
Доброго дня всем.

Вопрос такой, есть коллекция из коллекций, надо вернуть результат из процедуры в виде sys_refcursor.
Заранее размерность массива неизвестна, поэтому нагородил такое...

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
type t_prichal is table of varchar2(100)
		index by binary_integer;
  
  type tt_prichal is record (
    prichal  t_prichal
  );

  type t_matrix is table of tt_prichal
    index by binary_integer;
  
  v_matrix t_matrix;

..........
--тут все это дело заполняется
..........
--а потом надо что-то вроде этого:

-- это уже не работает, ошибка 00902 неверный тип данных
open r_recordset for select * from table (cast (v_matrix as t_matrix)); 
...
Рейтинг: 0 / 0
30.08.2019, 08:36
    #39855431
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из коллекции коллекций в sys_refcursor
=Nike=,

open рефкурсор for переменная.
...
Рейтинг: 0 / 0
30.08.2019, 08:39
    #39855432
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из коллекции коллекций в sys_refcursor
=Nike=Заранее размерность массива неизвестна, поэтомуRTFM NDS
...
Рейтинг: 0 / 0
30.08.2019, 09:52
    #39855460
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из коллекции коллекций в sys_refcursor
=Nike=,

в старых версиях для from table типы должны быть sql-ными (не pl/sql)

ps
иногда оракля сам может втихаря создать тип

....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Из коллекции коллекций в sys_refcursor / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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