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 :

problème avec GET DIAGNOSTICS


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 problème avec GET DIAGNOSTICS
    Bonjour,

    j'aimerai dans une fonction plpgsql obtenir le nombre de ligne que me "trouve" un select.

    Pour cela j'utilise la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GET DIAGNOSTICS var_num_result = ROW_COUNT;
    voici mon code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    DECLARE
    var_total_paiement double precision;
    var_prix_paye double precision;
    var_prix_inscription double precision;
    var_prix_adhesion double precision;
    var_prix_da double precision;
    var_num_result integer;
    BEGIN
    SELECT SUM(prix) INTO var_total_paiement FROM TBL_PAIEMENT WHERE code_facture=NEW.code_facture;
    SELECT SUM(prix_inscription) INTO var_prix_inscription FROM TBL_INSCRIPTION WHERE code_facture=NEW.code_facture;
    SELECT SUM(prix_droit_acces) INTO var_prix_da FROM TBL_DROIT_ACCES
    WHERE code_facture=NEW.code_facture;
    SELECT * FROM TBL_ADHESION WHERE code_facture=NEW.code_facture;
    GET DIAGNOSTICS var_prix_adhesion = ROW_COUNT;
    var_prix_paye := var_prix_da + var_inscription + (var_prix_adhesion * 4);
    IF var_prix_paye == var_total_paiement THEN
    UPDATE TBL_INSCRIPTION SET validite=TRUE WHERE code_facture=NEW.code_facture;
    ELSE
    UPDATE TBL_INSCRIPTION SET validite=FALSE WHERE code_facture=NEW.code_facture;
    END IF;
    RETURN NEW;
    END;
    Une fois la fonction executé, j'ai l'erreur suivante :

    SELECT query has no destination for result data .
    Pouvez vous me dire ce qui ne va pas ? ou bien me dire comment on fait pour récuperé le nombre de ligne que trouve un SELECT dans un fonction (plpgsql).

    Merci

  2. #2
    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
    J'ai trouvé la solution !!

    Il falait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT code_adhesion INTO var_num_result FROM TBL_ADHESION WHERE code_facture=NEW.code_facture; 
    GET DIAGNOSTICS var_num_result = ROW_COUNT;
    Merci pour vos réponses.

    A+

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

Discussions similaires

  1. problème avec gets
    Par jaimelagalette dans le forum Débuter
    Réponses: 2
    Dernier message: 13/10/2009, 00h32
  2. Problème avec GET
    Par Menontona dans le forum VB.NET
    Réponses: 5
    Dernier message: 14/03/2009, 22h51
  3. Langage c : problème avec gets
    Par aurelien1606 dans le forum Bibliothèque standard
    Réponses: 3
    Dernier message: 09/02/2009, 02h03
  4. [Cookies] Problème avec GET
    Par philippef dans le forum Langage
    Réponses: 6
    Dernier message: 08/03/2006, 15h56
  5. Problèmes avec gets
    Par al85 dans le forum C
    Réponses: 6
    Dernier message: 11/05/2005, 08h42

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