Thread: Return type for procedure
Hi,
I'm writing a procedure, where I'm trying to save writing other procedures by combining all of them in one procedure. All procdures take the same input parameters so I would imagine this is possible.
What I was wondering was if it was possible for me to return different user defined types. To try to illustrate what I mean, here's some example code which I think is allowed:
if id="1" then
processing code
return usertype3;
elseif id="2" then
processing code
return usertype3;
elseif id="3" then
processing code
return usertype3;
endif;
Is this possible?
Cheers,
Ben
> > What I was wondering was if it was possible for me to return different user > defined types. To try to illustrate what I mean, here's some example code > which I think is allowed: > yes. just create your functions as: CREATE FUNCTION test() RETURNS record as $$ $$ language 'your-language'; then execute the function as select * from test() as (field1 type1, field2 type2...); -- regards, Jaime Casanova "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs and the universe trying to produce bigger and better idiots. So far, the universe is winning." Richard Cook
Hi Jaime,
thanks for your reply.
Could anyone check if this is correct for what I'm trying to do
CREATE FUNCTION test(id integer,name varchar,date_start date date_end date) RETURNS record as $$
$$ language 'your-language';
if id="1" then
select * from tblemployee;
elseif id="2" then
select client_name,address
from tblclients;
endif
and then execute the function as
select * from test() as (report1, report2)
would this work? This is just example code for select statements which are far much longer
Cheers,
Ben
On 8/16/06, Jaime Casanova <systemguards@gmail.com> wrote:
>
> What I was wondering was if it was possible for me to return different user
> defined types. To try to illustrate what I mean, here's some example code
> which I think is allowed:
>
yes.
just create your functions as:
CREATE FUNCTION test() RETURNS record as $$
$$ language 'your-language';
then execute the function as
select * from test() as (field1 type1, field2 type2...);
--
regards,
Jaime Casanova
"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook