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

#1 11/02/2010 14:26:48

sophonie
Membre

Type de retour TABLE dans un script PL/pgSQL

Bonjour à toutes et à tous,

Dans le script suivant, mon objectif est de lister l'ensemble de la table users en affichant le nom
en minuscule, le prénom en initcap le tout trié par ordre croissant du nom

CREATE OR REPLACE FUNCTION list_client() RETURNS TABLE(user_nom text, user_prenom text) AS
$$
DECLARE
BEGIN
	RETURN QUERY SELECT LOWER(user_nom)nom, UPPER(user_prenom)prenom
	FROM users ORDER BY user_nom ASC, user_prenom;
	RETURN;
END;
$$ LANGUAGE plpgsql;

Sous psql, en faisant un SELECT * FROM users;
les colonnes user_nom et user_prenom s'affichent mais le contenu des champs est vide (valeur NULL)

Merci d'avance.
Sophonie.

Hors ligne

#2 11/02/2010 15:09:21

gleu
Administrateur

Re : Type de retour TABLE dans un script PL/pgSQL

Et donc ? elle est où la question ? si le SELECT sur la table users ne renvoie rien, c'est qu'il n'y a pas de données dans cette table ?!?!


Guillaume.

Hors ligne

#3 11/02/2010 16:47:24

sophonie
Membre

Re : Type de retour TABLE dans un script PL/pgSQL

Bonjour gleu,

Pourtant il y a des données dans la table users puisqu'un

SELECT * FROM users;

renvoi les 5 records présents dans la table

Sophonie.

Hors ligne

#4 11/02/2010 17:52:51

gleu
Administrateur

Re : Type de retour TABLE dans un script PL/pgSQL

Attention à ne pas ré-utiliser les mêmes noms de variables. Ceci fonctionne par exemple :

CREATE OR REPLACE FUNCTION list_client() RETURNS TABLE(n text, p text) AS
$$
DECLARE
BEGIN
    RETURN QUERY SELECT LOWER(user_nom) nom, UPPER(user_prenom) prenom
    FROM users ORDER BY user_nom ASC, user_prenom;
END;
$$ LANGUAGE plpgsql;

Guillaume.

Hors ligne

#5 11/02/2010 21:51:25

sophonie
Membre

Re : Type de retour TABLE dans un script PL/pgSQL

Bonsoir gleu,

Comme je l'ai souligné dans un précédent post je n'en suis qu'à mes débuts
sous PL/pgSQL donc je commet des erreurs de débutant.

Merci encore.
Sophonie.

Hors ligne

Pied de page des forums