Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Работа с коллекциями  [new]
Egorka
Guest
Есть процедура, которая возвращает table of varchar2
Как получить набор значений этой коллекции с помощью select-a

type varray_type is table of varchar(32000);

FUNCTION MyFunction(Param1 IN NUMBER) RETURN varray_type IS
tab_test varray_type;
BEGIN
tab_test := varray_type ();
for i in 1..10 loop
tab_test.extend;
tab_test(tab_test.last) := ';LJKSHDQKVBKGSD';
end loop;
RETURN tab_test;
END;

type ref_cursor is ref cursor;
FUNCTION MyFunction1() RETURN ref_cursor IS
m_cur ref_cursor;
BEGIN
open m_cur for
select ... from MyFunction(0);
RETURN m_cur;
END;
27 июл 06, 12:03    [2932198]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями  [new]
iV@n
Member

Откуда:
Сообщений: 382
select * from tabel(cast(MyFunction(0) as varray_type))
27 июл 06, 12:05    [2932212]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями  [new]
iV@n
Member

Откуда:
Сообщений: 382
iV@n
select * from tabel(cast(MyFunction(0) as varray_type))

естественно не tabel, а table
27 июл 06, 12:06    [2932222]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями  [new]
Egorka
Guest
В toad-e пишу

select * from table(cast(egor_test.MyFunction(0) as egor_test.varray_type))

В результате сообщение об ошибке: invalid datatype

Если написать блок

declare
type varray_type is table of varchar2(32000);
begin
select * from table(cast(egor_test.MyFunction(0) as varray_type));
end;
То ошибка

ORA-06550: line 4, column 53:
PL/SQL: ORA-00902: invalid datatype
ORA-06550: line 4, column 1:
PL/SQL: SQL Statement ignored

Выделяет varray_type
27 июл 06, 12:31    [2932395]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
SELECT - это SQL, он о типах PL/SQL не знает. Попробуй создать тип в базе

CREATE OR REPLACE TYPE ...
27 июл 06, 12:35    [2932424]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями  [new]
Egorka
Guest
Спасибо, помогло!
27 июл 06, 12:52    [2932553]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями  [new]
Egorka
Guest
Спасибо, помогло!
27 июл 06, 13:10    [2932662]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить