Précédent   Forum du club des développeurs et IT Pro > Bases de données > PostgreSQL > Débuter
Débuter Forum d'entraide : Débuter en base de données avec PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 27/01/2012, 11h26   #1
Lovmy
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2002
Messages : 225
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2002
Messages : 225
Points : 95
Points : 95
Envoyer un message via ICQ à Lovmy
Par défaut Concaténation de résultat

Bonjour,

J'ai une table avec plusieurs lignes, je cherche à faire une fonction qui me renvoi un résultat du genre:

ligne1.champ1 : ligne1.champ2 ; ligne2.champ1 : ligne2.champ2 ; etc...

Pour cela j'ai fait:

Code :
1
2
3
4
5
6
7
8
declare stats text;
declare row RECORD;
begin
   FOR row IN SELECT valeur, etat FROM toto loop
      stats := row.valeur || ':' || row.etat || ';' || stats;
   end loop;
   RETURN stats;
end;
Hors cela me renvoi NULL, si je remplace par:

Code :
stats := row.valeur || ':' || row.etat || ';';
J'ai bien la dernière ligne de ma table.

D'ou vient mon erreur ?

Cordialement.
Lovmy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 11h37   #2
punkoff
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 2 160
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 2 160
Points : 3 494
Points : 3 494
bonjour,

Essayez ceci :
Code :
1
2
 
SELECT 'toto' || NULL
du coup vous pouvez en déduire que concatener null avec une chaîne de caractère donne .. null !

Donc mettez une valeur par défaut à votre variable valeur, lors de sa déclaration par exemple :
Code :
1
2
 
declare valeur text := '';
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/01/2012, 13h24   #3
Lovmy
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2002
Messages : 225
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2002
Messages : 225
Points : 95
Points : 95
Envoyer un message via ICQ à Lovmy
Par défaut Merci c'est bon

Merci de votre réponse, effectivement maintenant ça marche !
Lovmy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h53.


 
 
 
 
Partenaires

Hébergement Web