| From: | Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> |
|---|---|
| To: | "Froggy / Froggy Corp(dot)" <froggy(at)froggycorp(dot)com> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: PL/SQL question |
| Date: | 2004-04-21 02:48:40 |
| Message-ID: | 20040420194647.B40210@megazone.bigpanda.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Tue, 20 Apr 2004, Froggy / Froggy Corp. wrote:
> I try to see if i can make a recursive function with a trigger set on
> INSERT and doing an insert under my trigger function.
>
> So i wrote a test function :
>
>
> CREATE OR REPLACE FUNCTION testfunc() RETURNS SETOF RECORD AS '
> DECLARE
> use_t RECORD;
> BEGIN
>
> SELECT INTO use_t id_categorie FROM categorie ORDER BY id_categorie
> DESC;
> IF use_t.id_categorie<>50 THEN
> INSERT INTO categorie (nom) VALUES (''test'');
> END IF;
>
> RETURN NULL;
>
> END;
> 'LANGUAGE plpgsql;
>
>
> The problem is that i can't exec this function to test it, psql return
> the following error :
>
> "ERROR: set-valued function called in context that cannot accept a set"
Record set returning functions aren't called as:
select foo();
but instead as
select * from foo() AS foo(<columns>);
However, since you're not apparently actually returning a set of anything
in the function you may just want to change the return type.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Vincent Ladlad | 2004-04-21 02:53:16 | staggered query? |
| Previous Message | Jim Seymour | 2004-04-21 02:31:06 | Re: Basix for Data General / Basix for Sco Unix |