Ключевые слова:oracle, sql, select, (найти похожие документы)
Date: Thu, 03 Oct 2002 18:31:34 +0600
From: Max Antonov <Max_Antonov@p101.f79.n5000.z2.fidonet.org>
Newsgroups: ftn.su.dbms.sql
Subject: PL/SQL функция возвращающая несколько значений
IP> хочется написать функцию, которая возвращала бы несколько значений, как
IP> select возвращает несколько строк из таблицы. функция должна быть не на
IP> SQL. лучше всего на C. она не просто берёт некоторые строки из таблицы, а
IP> на основании нескольких строк из таблицы делает другие, которые возвращает
IP> наружу.
Hе знаю как на постгре, на оракле8i в PL/SQL можно так:
create or replace type myObject as Object
(
ID Number,
VALUE Varchar2(1024)
)
/
create or replace type myTable as TABLE of myObject
/
create or replace function getMyTable() return myTable as
myobj myObject;
mytbl myTable:=myTable();
begin
myobj:=myObject(1,'value1');
mytbl.extend(1);
mytbl(mytbl.last):=myObj;
myobj:=myObject(1,'value2');
mytbl.extend(1);
mytbl(mytbl.last):=myObj;
return mytbl;
end;
/
далее:
select * from table (cast(getMyTable()) as myTable)
/
Примерно в таком стиле. В доке по PL/SQL все написано.