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 :

Affecter résultat d'une fonction à une variable ?


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut Affecter résultat d'une fonction à une variable ?
    Bonjour,

    Débutant avec le SQL, je galère un peu pour insérer dans une variable le résultat d'une requête ou d'une fonction;

    J'ai une fonction get_last_gids() renvoyant le dernier enregistrement d'une table :

    CREATE FUNCTION get_last_gids() RETURNS INTEGER AS '
    SELECT gid_id from gids ORDER BY compt DESC LIMIT 1;'
    LANGUAGE 'SQL';

    Je voudrais dans une fonction PL/PGSQL affecter à une variable le résultat de cette fonction :

    CREATE FUNCTION update_gids_links() RETURNS TEXT AS '
    DECLARE
    last_gids INTEGER;
    BEGIN
    SELECT INTO last_gids FROM (SELECT gid_id from gids ORDER BY compt)
    ou SELECT INTO last_gids EXECUTE get_last_gids();
    DESC LIMIT 1);
    RETURN last_gid;
    END;
    ' LANGUAGE 'PLPGSQL';

    Mais dans les 2 cas, j'ai une erreur.

    Sauriez-vous comment remédier à cela ?

    En vous remerciant,

    C. Tobini

  2. #2
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    Pourquoi dans ton premier select tu ne mets pas de champs de table???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select nom_champ INTO nom_var FROM....

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut
    Bonjour et merci de ta réponse, ça fonctionne très bien.

    J'ai réécris à l'identique ma fonction est maintenant ça marche aussi (?).

    Pour l'info :

    DECLARE
    var as INTEGER;
    BEGIN
    var := ma_fonction();
    ou var := (SELECT...)
    RETURN ...
    END;

    Et c'est bon.

    C. Tobini

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

Discussions similaires

  1. appliquer une fonction à une fonction
    Par stracoma dans le forum C++
    Réponses: 6
    Dernier message: 20/03/2015, 16h35
  2. affectation d'une fonction à une variable
    Par cashmoney dans le forum Flex
    Réponses: 2
    Dernier message: 03/09/2009, 11h11
  3. Réponses: 1
    Dernier message: 16/03/2009, 09h22
  4. passer en paramettre d'une fonction une fonction
    Par RoM3Ro dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/06/2006, 15h54
  5. Réponses: 5
    Dernier message: 09/02/2005, 18h50

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