RE: pl/pgsql and returning rows
От | Jeff Eckermann |
---|---|
Тема | RE: pl/pgsql and returning rows |
Дата | |
Msg-id | 08CD1781F85AD4118E0800A0C9B8580B0949DE@NEZU обсуждение исходный текст |
Ответ на | pl/pgsql and returning rows (wade <wade@wavefire.com>) |
Ответы |
Re: RE: pl/pgsql and returning rows
|
Список | pgsql-sql |
As a workaround, you can insert your row into an existing table, then retrieve it from there later. I think you need to enumerate all of the fields, as in 'INSERT INTO table VALUES (ret.field1, ret.field2,...ret.fieldn);'. At least, I haven't succeeded any other way. Messy, but the best method available right now. > -----Original Message----- > From: Richard Huxton [SMTP:dev@archonet.com] > Sent: Tuesday, March 27, 2001 2:27 AM > To: pgsql-sql@postgresql.org; wade > Subject: Re: pl/pgsql and returning rows > > From: "wade" <wade@wavefire.com> > > > create function get_details(int4) returns details as ' > > declare > > ret details%ROWTYPE; > > site_rec record; > > cntct contacts%ROWTYPE; > > begin > > select into site_rec * sites_table where id = $1 limit 1; > > select into cntct * from contacts where id = site_rec.contact; > > > > -- and then i populate rows of ret. > > ret.name := cntct.name; > > ret.ip := site_rec.ip; > > . > > . > > . > > return ret; > > end; > > ' language 'plpgsql'; > > > > now the problem is when is when I do a: > > SELECT get_details(55); > > all i get is a single oid-looking return value: > > get_details > > ------------- > > 136295592 > > (1 row) > > Sorry - you can't return a row from a function at the present time (except > for trigger functions which are special) although I believe this is on the > todo list for a later 7.x release. > > Just from the top of my head, you might try a view with a select rule, > although I'm not completely clear what your objectives are. > > - Richard Huxton > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
В списке pgsql-sql по дате отправления: