IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 PostgreSQL Discussion :

affichage de plusieurs ligne


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 6
    Points : 5
    Points
    5
    Par défaut affichage de plusieurs ligne
    Bonjour,
    je débute vraiment est donc excusé moi si la question est bête mais j'ai cherché partout et je n'ai pas trouvé. Voici mon problème:

    je dois créer une fonction consultation() qui révèle au médecin les symptomes visible du patient selon sa compétence (pour l'instant je n'en teste qu'une seule).

    voici ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Create or replace function consultation( medecin medecins.matricule%TYPE,  patient contamination.id_patient%TYPE)
    	returns text as $$
    	DECLARE 
    		symptomevisible symptomes.nom_sympt%TYPE;
    		competence medecins.type%TYPE;
    	BEGIN
    		select type into competence from medecins where matricule=medecin;	
    		IF competence='referent'
            	THEN
            		FOR symptomevisible in 
            		select nom_sympt from symptomes where id_sympt in ((select id_sympt from maladie_symptomatique where nom_maladie in (select nom_maladie from contamination where id_patient=patient)))
            		LOOP 
            			return symptomevisible;
            		END LOOP;
            	end if;
    	END;
    $$ LANGUAGE PLPGSQL;
    mais ça ne fonctionne pas:

    en appelant ma fonction j'obtient:
    consultation
    ----------------------
    presence de comedons
    (1 row)



    alors que les symptomes du patients sont:
    nom_sympt
    ---------------------------
    presence de comedons
    presence de points blancs
    presence de papules
    presence de de pustules
    (4 rows)

    Comment faire pour faire afficher les 4 symptomes, je fais une boucle mais elle ne tourne pas.
    Pourriez vous m'aider??? S'il vous plait!!!

    merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Si cette fonction est supposée renvoyer plusieurs lignes de résultat, il faut la déclarer en RETURNS SETOF text et non en RETURNS text.
    Il faut également utiliser RETURN NEXT dans la boucle pour constituer progressivement le jeu de résultat ligne par ligne.
    Consulter la doc de plpgsql pour plus de détails et des exemples.

Discussions similaires

  1. [TinyButString] Affichage de plusieurs lignes
    Par eamon250d dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 31/05/2010, 17h15
  2. affichage de plusieurs lignes dans un titre de tabpanel
    Par amadoulamine1 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 20/12/2008, 13h52
  3. [MySQL] Affichage sur plusieurs lignes dans base de données
    Par asvin dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/10/2008, 19h07
  4. affichage de plusieurs lignes
    Par ozzmax dans le forum Langage
    Réponses: 2
    Dernier message: 09/11/2006, 19h12
  5. Affichage sur plusieurs lignes d'une méthode toString
    Par Flophx dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 24/05/2006, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo