PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 10/06/2011 21:44:01

bebert73
Membre

nom de variable dans une fonction SQL

Bonjour,

y-a-t-il une astuce pour utiliser le nom d'une variable dans une fonction SQL, au lieu d'utiliser $1, $2, etc. (comme dans plpgsql) ?

Par exemple la fonction suivante renvoie un message d'erreur "la colonne « toto_in » n'existe pas"
CREATE OR REPLACE FUNCTION toto(IN toto_in INTEGER) RETURNS INTEGER AS $$
    SELECT toto_in * 2;
$$ LANGUAGE SQL;


On est obligé de référencer la variable avec $1. Ainsi la fonction suivante marche :
CREATE OR REPLACE FUNCTION toto(IN toto_in INTEGER) RETURNS INTEGER AS $$
    SELECT $1 * 2;
$$ LANGUAGE SQL;


Mais en PL/PGSQL on peut référencer la variable par son nom. La fonction suivante marche.
CREATE OR REPLACE FUNCTION toto(IN toto_in INTEGER) RETURNS INTEGER AS $$
DECLARE
retour    INTEGER;
BEGIN
    SELECT toto_in * 2 INTO STRICT retour;
    RETURN retour;
END;
$$ LANGUAGE plpgsql;



Y-a-t-il une astuce pour utiliser aussi les noms des variables dans une fonction SQL ? Ou alors est-on obligé d'utiliser les $1, $2, ... ?

Hors ligne

#2 11/06/2011 05:36:54

gleu
Administrateur

Re : nom de variable dans une fonction SQL

Non, on est obligé d'utiliser les paramètres de position ($1, $2, ...).


Guillaume.

Hors ligne

#3 11/06/2011 14:06:39

bebert73
Membre

Re : nom de variable dans une fonction SQL

ok merci

Hors ligne

Pied de page des forums