From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
---|---|
To: | tony <tony(at)animaproductions(dot)com> |
Cc: | postgres list <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Function problems redux |
Date: | 2001-11-05 16:53:00 |
Message-ID: | 20011105085220.Y40711-100000@megazone23.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 5 Nov 2001, tony wrote:
> Hello,
>
> Here is my function. It takes two variables a_artiste(name, forename).
>
> DECLARE
> artiste_id individu.individu_id%TYPE;
> nom ALIAS FOR $1;
> prenom ALIAS FOR $2;
> ival INTEGER := nextval('individu_serial');
> art TEXT := 'artiste';
> curr INTEGER := currval('individu_serial');
> BEGIN
> SELECT INTO artiste_id * FROM individu WHERE to_ascii(nom) ILIKE
> to_ascii(individu.nom) AND to_ascii(prenom) ILIKE
> to_ascii(individu.prenom) AND type ILIKE 'collection' OR type2 ILIKE
> 'artiste';
> IF NOT FOUND THEN
> INSERT INTO individu (individu_id,nom,prenom,type2) VALUES (ival, nom,
> prenom, art)
> RETURN curr;
> END IF;
> RETURN artiste_id;
> END;
>
> ERROR: parser: parse error at or near "return"
> DEBUG: Last error occured while executing PL/pgSQL function a_artiste
> DEBUG: line 11 at SQL statement
>
> This works just fine for known artists but my IF NOT FOUND clause is
> seriously broken
Don't you need a semicolon at the end of that insert into line in the
if not found?
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Szabo | 2001-11-05 16:56:57 | Re: Referring a table in another database |
Previous Message | Gabriel Fernandez | 2001-11-05 16:52:02 | Problems of precision with float8 type |