This is a discussion on Return type for procedure within the pgsql Novice forums, part of the PostgreSQL category; --> Hi, I'm writing a procedure, where I'm trying to save writing other procedures by combining all of them in ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| 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 ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings |
| ||||
| 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 > |
| Thread Tools | |
| Display Modes | |
|
|