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 :

[Postgresql] Procédure avec if ne fonctionne pas


Sujet :

PostgreSQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 63
    Points : 43
    Points
    43
    Par défaut [Postgresql] Procédure avec if ne fonctionne pas
    Bonjour à tous,

    J'ai une base de données sur postgresql sur windows et j'ai une procédure qui ne veut pas être créée.

    Voici à quoi ressemble ma procédure :

    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
    24
    25
    26
    27
    28
    29
    CREATE FUNCTION majsoldebanque () 
    	RETURNS float 
    	AS 
    '
    declare
     
    idCompte integer;
     
    sens character;
     
    montant money;
     
    if(sens='c') then
     
    update COMPTE set SoldeBanque_Compte=SoldeBanque_Compte+@montant
     
    where Id_Compte=@idCompte
     
    else
     
    update COMPTE set SoldeBanque_Compte=SoleBanque_Compte-@montant
     
    where Id_Compte=@idCompte
     
    endif
     
    end
    '
    LANGUAGE 'plpgsql';
    et voici le message d'erreur qui m'est affiché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ERROR:  syntax error at or near "c"
    LINE 13: if(sens='c') then
                      ^
     
    ********** Erreur **********
     
    ERROR: syntax error at or near "c"
    État SQL :42601
    Caractère : 129
    Cette fonction me permettrai de mettre à jour un solde de compte bancaire.

    Comment faire pour résoudre cette erreur ?

    C'est assez important, j'en ai besoin très rapidement.

    Par avance, merci.

    Bien cordialement.

    rgdu86

  2. #2
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    c'est parceque tu utilise ' comme delimiteur de fonction, et tu utilise ce symbole dans le code , utilise plutot $$ comme delimiteur

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Après avoir bidouiller dans tout les sens, voici la bonne réponse :

    CREATE OR REPLACE FUNCTION majsoldebanque(idcompte integer, sens bpchar, montant double precision)
    RETURNS double precision AS

    begin
    if(sens=c)then
    update COMPTE set SoldeBanque_Compte=SoldeBanque_Compte+montant
    where Id_Compte=idCompte;
    else
    update COMPTE set SoldeBanque_Compte=SoldeBanque_Compte-montant
    where Id_Compte=idCompte;
    end if;
    end;
    LANGUAGE 'plpgsql'

    Merci quand même amigo.

    Bien cordialement.

    rgdu86

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

Discussions similaires

  1. Lien avec image ne fonctionnant pas
    Par lodan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/07/2007, 18h34
  2. DeleteFolder avec Wildcard - ne fonctionne pas ?
    Par chapeau_melon dans le forum VBScript
    Réponses: 1
    Dernier message: 12/07/2007, 20h22
  3. Réponses: 2
    Dernier message: 15/01/2007, 11h31
  4. besoin aide bouton avec effet zoom fonctionne pas.
    Par zicomoun dans le forum Flash
    Réponses: 3
    Dernier message: 13/06/2006, 08h15
  5. Réponses: 16
    Dernier message: 01/02/2006, 19h09

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