![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
firelex |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 9.12.2003 Репутация: нет Всего: нет |
Доброго времени суток, all!
Проблема такая: необходимо в БД Оракл создать функцию. Как сделать чтобы она возвращала несколько строк, а не одно значение (как, например, SELECT какой-ньдь)?
Такая функция компилируется без ошибок, но затем на
Оракл ругается
Если функция написана правильно, то как же тогда получить то, что она возвращает? ![]() |
||||||
|
|||||||
AntonSaburov |
|
||||||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 1 Всего: 118 |
Для Oracle 8i и Oracle 9i существуют так называемые "табличные функции" (конвейерные функции и функции трансформации) , которые умеют возвращать набор данных, который можно рассматривать, как реляционную таблицу в предложении FROM.
Для их создания надо: 1. В предложении RETURN определить тип возвращаемых функцией данных как коллекцию (вложенную таблицу или VARRAY) 2. Поместить вызовы функции в операторы TABLE и CAST Как пример (вытащил из книжки ![]() 1. Создадим табличный тип
2. Создадим функцию, которая принимает в качестве аргументов два объекта типа pet_t - mon_in (мать) и dad_in (отец) и возвращает таблицу о составе его "семьи"
3. Теперь эту функцию можно вызвать так:
|
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Oracle" | |
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Oracle | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |