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 :

[format des données avec une procédure stockée] [FAQ]


Sujet :

PostgreSQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut [format des données avec une procédure stockée]
    Bonjour,

    Comment se fait-il qu'avec une procédure stockée postgresql me retourne les données sous ce format :

    (93,04,04070,4,ALPES-DE-HAUTE-PROVENCE)

    alors que si je fais une vue ou une requête sql de mon fichier php j'ai les résultats en colonne ?

    Merci

  2. #2
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Essaye quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE OR REPLACE FUNCTION cherchelistedpt()
      RETURNS SETOF record AS
    $BODY$
    declare
     rec RECORD;
    begin
    FOR rec IN SELECT * FROM departement ORDER BY ncc ASC 
         LOOP
           RETURN NEXT rec ;
         END LOOP ;
       RETURN ;
    end;
    $BODY$
      LANGUAGE 'plpgsql' VOLATILE;

    pour appeler la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM cherchelistedpt() AS (champ1 char(2), champ2 char(2), champ3 char(4), champ4 int2, champ5 varchar)
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Merci beaucoup ça fonctionne !

    mais que ça à l'air compliqué, peux-tu m'expliquer les instructions ?

    Merci

  4. #4
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Il s'agit d'une procedure stockée en pl/pgsql.

    RETURNS SETOF record
    : il me retourne un ensemble (SETOF) de tuple (record)

    Declare
    rec RECORD
    ; -- je declare mon tuple temporaire

    FOR rec IN SELECT ....... -- boucle sur les tuples de la requete

    RETURN NEXT rec -- je passe au prochain tuple

    et ainsi de suite jusqu'a la fin des enreg


    Pour recuperer les valeurs, c'est pas evident si on connait pas, la procedure devient une sorte de table (d'où SELECT ... FROM maprocedure)
    la partie AS (champ1 char(2), .. indique les champs de sortie car par avance le select ne sait pas les colonnes qui seront retournées.
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Je comprends pourquoi je galère comme un fou effectivement. Moi qui ai travaillé avec Sql server je n'ai pas rencontré ces soucis.

    Où puis-je trouver des infos pour bosser ce sujet ?

    Je présume que la syntaxe doit être encore plus compliquée si je ne sélectionne que quelques colonnes ou si je fais passer des paramètres.

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    la syntaxe n'est pas très compliquée, ce n'est qu'une question d'habitude...

    Un tutoriel (en anglais) pour écrire des procédures stockées renvoyant des jeux d'enregistrement : http://techdocs.postgresql.org/guide...rningFunctions
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    je me doute...

    mais si quelqu'un d'expert pouvait faire quelques tutos ce serait le bonheur !!!

  8. #8
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    J'y avais pensé mais dans un premier temps, je vais plutot l'integrer dans la faq qui je suis en train de preparer.
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 01/08/2014, 18h20
  2. Réponses: 2
    Dernier message: 28/05/2006, 23h31
  3. Récupération des paramètres avec une procedure stockée
    Par samlerouge dans le forum Bases de données
    Réponses: 2
    Dernier message: 31/03/2004, 22h00
  4. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 15h33

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