|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Хранимая функция ORACLE
Нужен пример хранимой функции которая возвращает таблицу данных.
И можно ли получать из базы данные не по одной строчке а пакетом по 20 штук например ? Последний раз редактировалось Admin, Сегодня в 10:32. |
#2
|
||||
|
||||
Код:
CREATE OR REPLACE type courselist as table of varchar2(10) / CREATE OR REPLACE type trec as object ( fld varchar2(10), courses courselist ); / CREATE OR REPLACE type ttab as table of trec; / CREATE OR REPLACE package dataset is function getdataset(arows number) return ttab; end; / CREATE OR REPLACE package body dataset is function getdataset(arows number) return ttab as t ttab; r trec; i number; begin t:=ttab(); for i in 1..arows loop r:=trec(1, 2, 3, 4, 5, 6, 7, 8); t.extend; t(t.last):=r; r:=trec('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'); t.extend; t(t.last):=r; r:=trec('привет', '', 'от', '', 'GR@F', '', '', ''); t.extend; t(t.last):=r; r:=trec('а суть', '', '', '', '', '', '', ''); t.extend; t(t.last):=r; r:=trec('', '', 'этой', 'басни', 'в', 'том', ',', ''); t.extend; t(t.last):=r; r:=trec('', '', '', '', '', '', 'что', 'можно'); t.extend; t(t.last):=r; r:=trec('ляпать', 'свои', 'наборы', 'данных', '', '', '', ''); t.extend; t(t.last):=r; r:=trec('', '(', 'как', 'этот', ')', '', '', ''); t.extend; t(t.last):=r; end loop; return t; end; end; / /* select * from table(cast(dataset.getdataset(1) as ttab)) */ Пишу программы за еду. __________________ |
#3
|
||||
|
||||
Спасибо! А по второй части вопроса кто-нить поможет? можно ли выгрузить пачкой по 20 записей а не все сразу?
Последний раз редактировалось Admin, Сегодня в 10:32. |