Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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
Pages : 1