И Снова select * from proc_name

Siveron
Дата: 30.09.2004 08:02:20
в InterBase чтобы передать данные наружу, подготавливаешь значения нужных переменных, обозначенных как out и делаешь suspend. Как это сделать в Oracle? Про ref cursor я знаю, но мой результирующий запрос не описать одним селектом (open cursor_var for select и тд), это сложный отчет. Как поступить?
Vadim_Maximov
Дата: 30.09.2004 09:27:46
Свалить во временную таблицу, там обработать и результатам уже строить отчет. У нас иногда даже бывало, что это работало быстрее, нежели один громоздкий селект на пару десятков страниц. :)
pnv
Дата: 30.09.2004 09:50:39
посмотрите, на выходе табличный тип, в процедуре можно работать с типом, как с массивом, с разичными выборками.
http://www.sql.ru/forum/actualpost.aspx?bid=3&tid=101736&mid=0&p=1#757241
Вызов из sql приблизительно
select p.* from TABLE(cast(func_name(param1,param2,...) as type_name_table)) p
Siveron
Дата: 30.09.2004 12:53:10
pnv
посмотрите, на выходе табличный тип, в процедуре можно работать с типом, как с массивом, с разичными выборками.
http://www.sql.ru/forum/actualpost.aspx?bid=3&tid=101736&mid=0&p=1#757241
Вызов из sql приблизительно
select p.* from TABLE(cast(func_name(param1,param2,...) as type_name_table)) p


Спасибо
igor2222
Дата: 30.09.2004 12:59:41
Если селект (а точнее вызов процедуры) осуществляется делфой, то что мешает задать параметры IN любых типов и вернуть параметр OUT типа Курсор?
Никакого кардинального отличия не вижу.
Больше стоит обратить внимание на текст самой процедуры (использование связанных переменных, оптимизация планов выполнения и т.д.)