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

Oracle Discussion :

[Pl/Sql] PLS-00103 triggers


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 29
    Par défaut [Pl/Sql] PLS-00103 triggers
    merci d'avoir porté attention à ma question.
    j'ai essayé d'écrire le trigger suivant qui permet de vérifier un stock d'aun
    article donné et qui permet de le mettre à jour en fonction de la quantité livrée.
    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
    30
    31
    32
    33
    CREATE OR REPLACE TRIGGER BI_qte_livree
    BEFORE INSERT ON DETAILLIVRAISON
    FOR EACH ROW
    DECLARE
    	qtestock Article.quantiteStock%type;
    	qte ligneCommande.quantite%type;
    BEGIN
    	SELECT quantiteStock  
       	INTO qtestock
       	FROM Article
       	WHERE  noArticle = :new.noArticle;
     
    	SELECT quantite  
       	INTO qte
       	FROM ligneCommande
       	WHERE  noArticle = :new.noArticle AND noCommande = :new.noCommande;
     
        	IF ( qteStock > 0 ) THEN
    	 IF( :new.quantiteLivree <= ( qte - (fQuantiteLivree(:New.noCommande,:New.noArticle) ) THEN
    	   IF( :new.quantiteLivree <= qteStock ) THEN
    	    qteStock = qteStock - :new.quantiteLivree;
    	   ELSE
    	     :new.quantiteLivree = qteStock;
    	     qteStock = 0;
    	   end if;
    	 end if;
    	 UPDATE Article
    	 SET quantiteStock = qteStock
    	 WHERE noArticle = :new.noArticle;
    	ELSE
    	   RAISE_APPLICATION_ERROR (-20005,'quantite en stock insuffisante');
           end if;
    END;
    le problème est qu'il me sort les erreurs suivantes et je comprends pas pourquoi??
    si quelqu'un peut m'aider à comprendre mon erreur j'en serais reconnaissant
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    16/91 PLS-00103: Encountered the symbol "THEN" when expecting one of
    the following:
    ) , * & | = - + < / > at in is mod remainder not rem => ..
    <an exponent (**)> <> or != or ~= >= <= <> and or like
    between || year DAY_ member SUBMULTISET_

    18/15 PLS-00103: Encountered the symbol "=" when expecting one of the
    following:
    := . ( @ % ;

    19/5 PLS-00103: Encountered the symbol "ELSE"

  2. #2
    Membre émérite Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF( :new.quantiteLivree <= ( qte - (fQuantiteLivree(:New.noCommande,:New.noArticle) ) THEN
    Il manque un peu de rigueur sur la gestion des parentheses.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 29
    Par défaut
    merci beaucoup
    le problème est résolu

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

Discussions similaires

  1. PLS-00103 erreur incomprise sur PL/SQL developer
    Par balkis dans le forum PL/SQL
    Réponses: 5
    Dernier message: 01/09/2010, 16h03
  2. Erreur pl/sql PLS-00103
    Par redabadache3 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 31/10/2007, 12h31
  3. [PL/SQL] Erreur PLS-00103 dans un trigger
    Par sami.g dans le forum Oracle
    Réponses: 1
    Dernier message: 18/12/2006, 17h57
  4. [Trigger] - PLS-00103
    Par jacquesh dans le forum Oracle
    Réponses: 9
    Dernier message: 27/11/2006, 18h28
  5. Réponses: 4
    Dernier message: 23/05/2006, 17h04

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