Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2005, 10h45   #1
Membre habitué
 
Inscription : mai 2002
Messages : 635
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 635
Points : 109
Points : 109
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
viny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2005, 11h20   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
Essaye quelque chose comme :

Code :
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 :
SELECT * FROM cherchelistedpt() AS (champ1 char(2), champ2 char(2), champ3 char(4), champ4 int2, champ5 varchar)
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2005, 11h29   #3
Membre habitué
 
Inscription : mai 2002
Messages : 635
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 635
Points : 109
Points : 109
Merci beaucoup ça fonctionne !

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

Merci
viny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2005, 11h42   #4
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
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.
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2005, 11h46   #5
Membre habitué
 
Inscription : mai 2002
Messages : 635
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 635
Points : 109
Points : 109
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.
viny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2005, 12h22   #6
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
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
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2005, 12h28   #7
Membre habitué
 
Inscription : mai 2002
Messages : 635
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 635
Points : 109
Points : 109
je me doute...

mais si quelqu'un d'expert pouvait faire quelques tutos ce serait le bonheur !!!
viny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2005, 13h24   #8
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
J'y avais pensé mais dans un premier temps, je vais plutot l'integrer dans la faq qui je suis en train de preparer.
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h38.


 
 
 
 
Partenaires

Hébergement Web