Vous n'êtes pas identifié(e).
Pages : 1
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
Non, on est obligé d'utiliser les paramètres de position ($1, $2, ...).
Guillaume.
Hors ligne
ok merci
Hors ligne
Pages : 1