Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
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
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