Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вернуть несколько значений из процедуры/функции в ? [Oracle]


Oleg_EM ©   (2002-06-04 09:41:00) 

в IB select * from MyFunc(1)
вернет все значения, которые описаны в процедуре

а как тоже самое сделать в Oracle 7 ?

P.S. значения вернуть нада не наклиента,
а в другую процедуру ;-)


Yuvich   (2002-06-06 14:05:00) [1]

> Johnny Smith
Ну почему же? Функция возвращает все типы, поддерживаемые PL/SQL, в том числе и user defined, например типа ref cursor.


Johnny Smith   (2002-06-05 15:11:00) [2]

2PSERG (05.06.02 14:44)
Функция (причем не важно, в каком Оракле) на может возвращать иных значений, кроме Varchar, Number и Date...


PSERG   (2002-06-05 14:44:00) [3]

Если у тебя Oracle 8-9 то можно воспользоваться объектными типами и Nested Table. Если заинтересуешься напиши на мыло, раскажу подробнее.


Sergey13   (2002-06-04 11:52:00) [4]

Так в процедуру курсор передать еще проще. В первой открыл, во второй прочитал. Но все это желательно делать в пакете. Проще.


Oleg_EM   (2002-06-04 11:39:00) [5]

да нет, мне нада в одной процедуре получать несколько значений из другой процедуры, передавая ей параметры, можно конечно и в одну процедуру все впихнуть, но не читаемо будет :-)


Илья_____   (2002-06-04 10:58:00) [6]

Если нужно выводить данные в DBGrid, то можно из функции возвращать курсор. На ф-цию вешается TStoredProc, а на неё уже DBGrid. Я так обходил.... :)


Oleg_EM   (2002-06-04 10:17:00) [7]

2Johnhy Smith спасиба, идея понятна !


Johnny Smith   (2002-06-04 10:07:00) [8]

2Oleg_EM © (04.06.02 09:41)
Аналогичные вопросы встречаются довольно часто. Ответ один и тот же: механизма возврата набора строк из хранимой процедуры, аналогичного IB, в Оракле (да и в др. СУБД) нет.
Поэтому существует куча обходных путей.
Один из них - работа с пакетной переменной типа Table Of Record: она создается и заполняется одной процедурой пакета, а результаты из нее вытаскиваются селектом другой функции (функций) того же пакета.


Johnmen   (2002-06-04 09:50:00) [9]

Непонятно, в чем проблема то...
Описываешь параметры процедуры как OUT и все...


Наверх

Титульная страница Поиск, карта сайта Написать письмо