Thread: How do i return a dataset from a stored procedure

How do i return a dataset from a stored procedure

From
teknokrat@yahoo.com (teknokrat)
Date:
I can't figure out how to return a group of rows from a function
written in plpgsql (or plsql for that matter). The only way i have
seen it done is with a setof table return value in sql. But since the
query was a single select anyway i don't see the point of this. Is
there a way of creating a temporary table in a procedure and using it
as the output?

thanks




Re: How do i return a dataset from a stored procedure

From
Stephan Szabo
Date:
On 5 Jul 2002, teknokrat wrote:

> I can't figure out how to return a group of rows from a function
> written in plpgsql (or plsql for that matter). The only way i have
> seen it done is with a setof table return value in sql. But since the
> query was a single select anyway i don't see the point of this. Is
> there a way of creating a temporary table in a procedure and using it
> as the output?

In 7.2 you can return open cursors from plpgsql functions.  You can
make temp tables in a function, but you have to be careful to make sure
that you don't conflict (what happens if the user calls your function
twice)





Re: How do i return a dataset from a stored procedure

From
Roberto Mello
Date:
On Fri, Jul 05, 2002 at 01:32:33AM -0700, teknokrat wrote:
> I can't figure out how to return a group of rows from a function
> written in plpgsql (or plsql for that matter). The only way i have
> seen it done is with a setof table return value in sql. But since the
> query was a single select anyway i don't see the point of this. Is
> there a way of creating a temporary table in a procedure and using it
> as the output?

Search the list archives (through groups.google.com - it's
comp.databases.postgresql) or see the developer docs for PL/pgSQL. You
can achive that effect by returning a cursor in PG 7.2 (the section on
returning cursors is ommitted from the current docs in
www.postgresql.org/idocs, so you need to look at the developer docs - see
www.us.postgresql.org).

-Roberto

-- 
+----| http://fslc.usu.edu/ USU Free Software & GNU/Linux Club |------+ Roberto Mello - Computer Science, USU -
http://www.brasileiro.net/      http://www.sdl.usu.edu/ - Space Dynamics Lab, Developer    
 
Go straight to the docs.  Do not pass GO.  Do not collect $200!




Re: How do i return a dataset from a stored procedure

From
Bruce Momjian
Date:
Roberto Mello wrote:
> On Fri, Jul 05, 2002 at 01:32:33AM -0700, teknokrat wrote:
> > I can't figure out how to return a group of rows from a function
> > written in plpgsql (or plsql for that matter). The only way i have
> > seen it done is with a setof table return value in sql. But since the
> > query was a single select anyway i don't see the point of this. Is
> > there a way of creating a temporary table in a procedure and using it
> > as the output?
> 
> Search the list archives (through groups.google.com - it's
> comp.databases.postgresql) or see the developer docs for PL/pgSQL. You
> can achive that effect by returning a cursor in PG 7.2 (the section on
> returning cursors is ommitted from the current docs in
> www.postgresql.org/idocs, so you need to look at the developer docs - see
> www.us.postgresql.org).

7.3 will have better docs on using it but you can see them now in the
developers docs:
http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html

See the bottom of that page for examples.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026