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

SQL Oracle Discussion :

Retour de valeur d'une fonction


Sujet :

SQL Oracle

  1. #1
    Membre régulier Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Points : 102
    Points
    102
    Par défaut Retour de valeur d'une fonction
    Bonsoir,

    Je réalise actuellement une petite appli en C# dans laquelle on me demande de faire plein de PL/SQL pour mettre en avant les vertus d'oracle. Je cherche ici à récupérer la valeur retournée par une fonction dans une variable d'un trigger :
    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 TRIGGER TEST_PLACE AFTER INSERT ON PARTICIPER FOR EACH ROW
    DECLARE
    	plusDePlace EXCEPTION;
    	nbPlacesDispo NUMBER;
    BEGIN
    	nbPlacesDispo := NB_PLACES_DISPO(NEW.NUMCOURS);
    	IF nbPlacesDispo == 0 
                 THEN RAISE plusDePlace;
    	END IF;
    EXCEPTION
    	WHEN plusDePlace THEN RAISE_APPLICATION_ERROR(-20100, 'Ce cours ne peut plus accueillir de participants.');
    END;
    /
    Je sais que la fonction NB_PLACES_DISPO fonctionne (je l'ai testée dans SQL+) mais je suis trés désorienté par le débeugeur de SQL+ et pas du tout habitué au PL/SQL. Je suis désolé d'avoir à poster pour une petite erreur comme ça mais je vais me rendre fou !
    Oracle me répond à al compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ERROR at line 6: PLS-00103: Symbole "=" rencontré à la place dun des symboles suivants : 
    ( - + all case mod new null any avg count current max min prior some sql stddev 
    sum variance execute forall merge time timestamp interval date
    Voilà si quelqu'un avait une petite idée du pourquoi du comment, je lui en serai très reconnaissant !
    Merci d'avance à tous. Cordialement,

    Guigouz

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    L'opérateur == n'existe pas en PL/SQL. Pour une comparaison, un seul "=" suffit

  3. #3
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Oups...

    Essaye avec ça :
    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 TRIGGER TEST_PLACE AFTER INSERT ON PARTICIPER FOR EACH ROW
    DECLARE
    	plusDePlace EXCEPTION;
    	nbPlacesDispo NUMBER;
    BEGIN
    	nbPlacesDispo := NB_PLACES_DISPO(NEW.NUMCOURS);
    	IF nbPlacesDispo = 0 
                 THEN RAISE plusDePlace;
    	END IF;
    EXCEPTION
    	WHEN plusDePlace THEN RAISE_APPLICATION_ERROR(-20100, 'Ce cours ne peut plus accueillir de participants.');
    END;
    /
    LBO72.

  4. #4
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Désolé,

    PlainR était plus rapide que moi et je n'avais pas vu sa réponse :-)

    LBO72.

  5. #5
    Membre régulier Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Points : 102
    Points
    102
    Par défaut
    Merci beaucoup ça marche !
    Bonne journée !

    Guigouz

  6. #6
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Merci de penser à clore la discustion ==> la passer à l'état "Résolu"

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

Discussions similaires

  1. [Tableaux] Retour de valeur d'une fonction
    Par Trebor_ dans le forum Langage
    Réponses: 5
    Dernier message: 10/03/2008, 14h24
  2. [Mail] Retour de valeur d'une fonction
    Par pat06 dans le forum Langage
    Réponses: 3
    Dernier message: 14/12/2007, 11h32
  3. retour de variable d'une fonction
    Par thunderblade dans le forum ASP
    Réponses: 4
    Dernier message: 28/04/2005, 13h27
  4. fonction récupérant des valeurs dans une fonction popup...
    Par petitsims dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2005, 14h51
  5. Retourner une valeur avec une fonction
    Par stephtbest dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2003, 16h37

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