Re: RETURN cannot have a parameter in function with OUT parameters

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Samuel ROZE <samuel(dot)roze(at)aliceadsl(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: RETURN cannot have a parameter in function with OUT parameters
Date: 2008-09-02 11:52:48
Message-ID: 48BD2910.5000904@lelarge.info
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Samuel ROZE a écrit :
> Bonjour à tous,
>
> Toujours dans mon fonction "contact" de la dernière fois, PostgreSQL me
> sort une erreur bizare avec une simple fonction plpgsql...
>
> "5-clients-fonctions.sql:36: ERREUR: RETURN cannot have a parameter in
> function with OUT parameters sur ou près de « v_id » at character 1486"
>
> Je ne comprend vraiment pas qu'est-ce qu'il ce passe... Pouvez-vous
> m'aider ? Ci-dessous la fonction concernée.
>
> -----------------------
> CREATE OR REPLACE FUNCTION clients.contact (p_nom text, p_email text,
> inout TRIGGER integer) RETURNS integer AS $contact$

Tu déclares ta fonction comme renvoyant un integer, non pas grâce à la
clause returns, mais avec le mode inout du paramètre trigger (fort
mauvais nom pour une variable car trigger est un mot clé réservé).

> [...]
> RETURN v_id;

Du coup, ici, tu ne dois pas avoir

RETURN une_variable;

mais

RETURN;

et la valeur actuelle de la variable TRIGGER sera renvoyée.

Bref, vu ton code (et surtout vu ce que tu veux renvoyer), je pense que
le mode inout est à supprimer.

--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Samuel ROZE 2008-09-02 11:54:51 Re: RETURN cannot have a parameter in function with OUT parameters
Previous Message Samuel ROZE 2008-09-02 11:40:22 RETURN cannot have a parameter in function with OUT parameters