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 :

[plpgsql] comment retourner un tableau


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut [plpgsql] comment retourner un tableau
    Bonjour,

    J'aimerai savoir s'il est possible de retourner (dans une fonction) une table avec les colonne de notre choix (et plusieur colonne), et si oui comment attribuer attribuer a une colonne la valeur que je souhaite ?

    Pour etre plus clair :

    j'aimerai avoir comme retour de fonction le tableau suivant :

    | activite | heure | prix | droit_acces | adhesion |
    ------------------------------------------------------------
    | foot | 10h | 250 | 5 | 15 |
    ------------------------------------------------------------
    | box | 10h | 150 | 5 | 0 |
    ------------------------------------------------------------

    ps : j'ai aucune table qui respect se format (nom / type colonne)

    Et si c'est possible, comment faire pour attribuer mes valeurs à la variable ? ( c'est comme en prog, ie tab[1][0] == 'foot') ?


    Merci pour l'info.
    A+

  2. #2
    Membre éclairé Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Points : 781
    Points
    781
    Par défaut
    c est possible en creant un type par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TYPE type_retour_selection AS(
    	activite text,
            heure date,
            prix integer,
           droit_acces integer ,
           adhesion integer
    );
    ensuite au niveau de ta fonction tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    CREATE FUNCTION selectTruc(integer) RETURNS  type_retour_selection AS
    '
    DECLARE
    Arg1 ALIAS FOR $1;
     
    lignes_selection type_retour_selection%ROWTYPE;
    BEGIN
    SELECT INTO lignes_selection [b]requete de selection [/b]
    .....
    RETURN lignes_selection
    ....
    ca marche que si t as qu une seule ligne a retourner, sinon, il faut rajouter SETOF dans la declaration de fonction et renvoyer les lignes une par une.

    j espere que ca t aidera.

    ++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Yo !


    Cool ! merci pour la reponse. Cependant, je me pose toujours une question : comment fait on pour assigner la nième lignes lorsque on met SETOF ? peut etre comme ca : lignes_selection[n] := blabla... ?

    Merci

  4. #4
    Membre éclairé Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Points : 781
    Points
    781
    Par défaut
    pour renvoyer un jeu de resultat utilise une boucle for :

    FOR lignes_selection IN requete
    LOOP
    RETURN NEXT lignes_selection;
    END LOOP;

    cherche pas a utiliser des lignes[i] en pgplsql, ca marchera pas

    ++

Discussions similaires

  1. Comment retourner un tableau de QStringList ?
    Par petitclem dans le forum Débuter
    Réponses: 2
    Dernier message: 06/02/2012, 17h47
  2. Réponses: 5
    Dernier message: 28/04/2009, 20h34
  3. Réponses: 9
    Dernier message: 03/12/2007, 18h49
  4. comment retourner un tableau de double à VBA
    Par geminium dans le forum Général VBA
    Réponses: 2
    Dernier message: 01/06/2007, 19h11
  5. Comment retourner un tableau de valeurs?
    Par DOC doc doc dans le forum C++
    Réponses: 6
    Dernier message: 20/03/2007, 16h28

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