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 :

return setof text[]


Sujet :

PostgreSQL

Vue hybride

mereyj return setof text[] 04/04/2005, 16h26
Quentin C'est normal, un SELECT dans... 05/04/2005, 09h29
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 89
    Par défaut return setof text[]
    Voila le code :

    CREATE OR REPLACE FUNCTION interville () RETURNS SETOF text[] AS'
    BEGIN
    select location.location as city, count(locate.nmovie) as movies_count
    from location, locate
    where locate.nlocation = location.nlocation
    group by location.location
    order by movies_count desc;
    END;'
    LANGUAGE plpgsql;

    select * from interville ()

    Voila le probleme:

    ERROR: SELECT query has no destination for result data
    HINT: If you want to discard the results, use PERFORM instead.
    CONTEXT: PL/pgSQL function "interville" line 2 at SQL statement

    In statement:
    select * from interville ()

    Je ne comprend pas.
    Please help me.
    Je tiens a preciser que le type de retour m est impose.

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Par défaut
    C'est normal, un SELECT dans une procédure pgplsql n'est pas interprété comme valeur de retour. Et même si c'était le cas, tu retournerais un "setof record", ici.

    Je n'ai pas testé, mais je pense que ce code fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE OR REPLACE FUNCTION interville () RETURNS SETOF text[] AS'
    DECLARE
      ligne record;
      infos text[];
    BEGIN
      FOR ligne IN ("requête sql") LOOP
        infos[0] := ligne.champ1;
        infos[1] := ligne.champ2;
        RETURN NEXT infos;
      END LOOP;
      RETURN;
    END;'
    LANGUAGE plpgsql;

Discussions similaires

  1. return only Text
    Par lolalilo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/05/2013, 19h15
  2. Unbind touche return widget Text
    Par atalon1 dans le forum Tkinter
    Réponses: 2
    Dernier message: 01/07/2008, 18h10
  3. fonction RETURNS SETOF RECORD et count(): erreur
    Par ctobini dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/10/2006, 15h39
  4. return text[]
    Par Warz dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/01/2006, 16h40
  5. afficher du texte
    Par Mau dans le forum OpenGL
    Réponses: 10
    Dernier message: 24/06/2003, 15h31

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