| From: | Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> |
|---|---|
| To: | derrick(at)grifflink(dot)com |
| Cc: | pgsql-novice(at)postgresql(dot)org |
| Subject: | Re: plpgsql function Syntax |
| Date: | 2004-09-02 02:32:37 |
| Message-ID: | 20040901192016.N90367@megazone.bigpanda.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-novice |
On Wed, 1 Sep 2004 derrick(at)grifflink(dot)com wrote:
> Is it possible to get a select statement to work like this with a for loop?
>
> CREATE FUNCTION public.search(int4)
> RETURNS SETOF search1 AS
> '
> DECLARE
> category alias for $1;
> newrows search1%rowtype;
> rec RECORD;
> SQLCommand varchar;
>
> BEGIN
> IF (category = 0) THEN
> SQLCommand := 'SELECT * FROM table';
> ELSE
> SQLCommand := 'SELECT idnumber FROM table';
> END IF;
>
> FOR rec IN SQLCommand
> LOOP
> ...blah...
> ...blah...
> END LOOP;
>
> Basically I want to create the SELECT statement dynamically and then use
> that select statement in subsequent querries later in the function. Will
> this syntax work or should I try to use a VIEW?
You should be able to use FOR rec IN EXECUTE SQLCommand LOOP to execute
the string and loop over the results I think.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | derrick | 2004-09-02 03:20:03 | Re: plpgsql function Syntax |
| Previous Message | derrick | 2004-09-02 01:16:11 | plpgsql function Syntax |