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 :

fonction sql sous PgAdmin : n'affiche qu'un seul enregistrement


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Par défaut fonction sql sous PgAdmin : n'affiche qu'un seul enregistrement
    Bonjour,

    Je débute avec les fonctions sous pgadmin.
    Pour l'instant je n'utilise que des fonctions avec langage SQL.

    Sous PgAdmin , j'ai créé une fonction fonction_test qui doit m'afficher toutes les enregistrements de la colonne "ville" :

    Voici la définition de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ville FROM jpchenu.table_test ;

    ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    -- Function: fonction_test()
     
    -- DROP FUNCTION fonction_test();
     
    CREATE OR REPLACE FUNCTION fonction_test()
      RETURNS text AS
    'SELECT ville FROM jpchenu.table_test ;'
      LANGUAGE 'sql' VOLATILE;
    ALTER FUNCTION fonction_test() OWNER TO verification_donnees;
    Cela fonctionne nickel lorsque j'exécute directement le code
    SELECT ville FROM jpchenu.table_test ;

    Le problème est quand j'appelle la fonction par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT fonction_test();
    --> seulement une ligne de résultat est affichée

    Why doctor ?

  2. #2
    Membre Expert
    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
    Par défaut
    Citation Envoyé par jeanphi45 Voir le message
    Le problème est quand j'appelle la fonction par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT fonction_test();
    --> seulement une ligne de résultat est affichée
    La fonction est définie comme renvoyant un type "text", c'est-à-dire une seule valeur.

  3. #3
    Membre éclairé
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Par défaut
    Quel type de données faut-il mettre pour le paramètre de cette fonction ?

  4. #4
    Membre éclairé
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Par défaut
    Mon collègue m'a donné le bon type de données : SETOF text

    Cela va afficher tous les records.

    rq : si je veux afficher toutes les colonnes ( select * ) alors prendre SETOF table_test
    ( où table_test est le nom de ma table SQL)

    Il me reste à trouver le cas où mon select prend certaines colonnes mais pas toutes.

  5. #5
    Membre éclairé
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Par défaut
    En fait : SETOF record répond aux 3 cas

    Une petite différence : pour une seule colonne , l'output est différent :
    type de donnée text : pas de parenthèse en sortie
    type de donnée SETOF record : données entre parenthèses


    Merci pour la piste "type de données"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] Champ table qui n'affiche qu'un seul enregistrement
    Par ykydra dans le forum WinDev
    Réponses: 8
    Dernier message: 02/11/2010, 15h33
  2. appel des fonction sql sous C++
    Par R.Seif dans le forum C++
    Réponses: 6
    Dernier message: 29/04/2010, 13h33
  3. Réponses: 3
    Dernier message: 23/09/2009, 10h45
  4. ma requete sql sous asp n'affiche pas de données
    Par micoscas dans le forum ASP
    Réponses: 2
    Dernier message: 24/08/2006, 11h31
  5. Fonction "Format" sous SQL
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 08/10/2004, 09h07

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