Re: stored procedures and type of returned result.

From: Richard Huxton <dev(at)archonet(dot)com>
To: Patrice OLIVER <oliverp21(at)free(dot)fr>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: stored procedures and type of returned result.
Date: 2004-08-24 09:26:12
Message-ID: 412B09B4.1080407@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Patrice OLIVER wrote:
> Hello,
>
> I'm new in PostgreSQL. It's very cool.

Hello, and yes it is isn't it :-)

> I would like to know how to return a set of records from a stored
> procedure.
>
> For example, i would like to execute these sql command from a stored
> procedure :
>
> select t.typnum, t.typcom, t.typcateg, s.symurlgraph from structure.type t
> left join structure.symbole s
> on t.typcode = s.typcode;

Broadly speaking you'll want something like:

CREATE TYPE my_return_type AS (
a integer,
b text
);

CREATE FUNCTION my_function(integer) RETURNS SETOF my_return_type AS '
SELECT foo_a, foo_b FROM foo WHERE foo_c = $1;
' LANGUAGE SQL;

You don't need to define your own type if you want to return the same
columns as a table, you can use the table-name instead.

For more complex cases where you need procedural code, you probably want
to read Stephan Szabo's set-returning-functions article on techdocs.
http://techdocs.postgresql.org/guides/SetReturningFunctions

HTH
--
Richard Huxton
Archonet Ltd

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Philippe Lang 2004-08-24 09:56:29 Re: stored procedures and type of returned result.
Previous Message Patrice OLIVER 2004-08-24 08:39:24 stored procedures and type of returned result.