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 :

Erreur trigger oracle


Sujet :

Oracle

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut Erreur trigger oracle
    Bonjour,
    Voila nous avons un probleme de trigger dont voici le code :
    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
    CREATE OR REPLACE TRIGGER verif_saisie
    BEFORE INSERT OR UPDATE ON gardien_heure_jour
    FOR EACH ROW
    declare 
           temp varchar2(10);
           test varchar2(10);
    BEGIN
     
    IF :NEW.heure = '10h' then temp := '9h' end if;
     
     
    IF :NEW.heure<>'8h' then
           select id_parcelle into test from gardien_heure_jour where code=:NEW.code and jour=:NEW.jour and heure=temp;
          IF 
               :NEW.id_parcelle = test
          THEN
               raise_application_error(-20007,
                   'La parcelle doit etre differente de la parcelle precédente');
          end if; 
      end if;
    l'erreur se situe sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF :NEW.heure = '10h' then temp := '9h' end if;
    ensuite,voici l'erreur oracle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ERROR at line 8: PLS-00103: Symbole "END" rencontré à la place d'un des symboles suivants :
     
       * & = - + ; < / > at in is mod remainder not rem
        <> or != or ~= >= <= <> and or like LIKE2_
       LIKE4_ LIKEC_ between || multiset member SUBMULTISET_
    Symbole ";" a été substitué à "END" pour continuer.
     
    6.        test varchar2(10);
    7. BEGIN
    8. IF 
    9. :NEW.heure = '10h' then temp := '9h'
    10.  end if;
    Merci d'avance pour votre aide !!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 81
    Points : 82
    Points
    82
    Par défaut
    je pense qu'il faut que tu précises if inserting or updating avant tout. ensuite écrie le if qui pose pbm...bon courage. préviens-moi si ça marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    create trigger....
    begin
           if inserting or updating then
    .....
    cordialement.

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    On a essayé et ca ne change rien ...

    Merci pour ta réponse!

  4. #4
    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
    Tu as oublié un point virgule après '9h'.

    Néanmoins, je me permets de te rappeler que le forum n'a pas pour vocation le débuggage des codes des uns et des autres. Une lecture attentive de ton code t'aurait permis de trouver l'erreur et de gagner du temps.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  5. #5
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Il manque un point virgule sur la fameuse ligne !

    IF :NEW.heure = '10h' then temp := '9h' ; end if;

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 81
    Points : 82
    Points
    82
    Par défaut
    ok.

    je pense tout simplement que tu as oublié un point virgule avant end if c'est à dire
    IF :NEW.heure = '10h' then temp := '9h' ;
    end if;

    alors ça marche?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    Merci effectivement c'est une erreur toute bete mais apres plusieurs heures de programmation on est plus aussi lucide.

    Si ce n'est pas pour aider les autres , je ne vois pas à quoi sert le forum!

    Ceci dit je te remercie beaucoup!

    ++

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    Vous remercie!

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

Discussions similaires

  1. Erreur Java Oracle
    Par gloglo dans le forum JDBC
    Réponses: 5
    Dernier message: 20/10/2006, 08h37
  2. Erreur compilation Oracle Forms
    Par Kro_64 dans le forum Forms
    Réponses: 5
    Dernier message: 20/06/2006, 17h28
  3. message erreur trigger
    Par COLOMBAT dans le forum Développement
    Réponses: 3
    Dernier message: 02/06/2006, 15h03
  4. erreur dans oracle dev9i
    Par jamjam19 dans le forum Oracle
    Réponses: 1
    Dernier message: 06/04/2006, 11h22
  5. [JDBC]Probleme avec trigger Oracle
    Par aurel89 dans le forum JDBC
    Réponses: 2
    Dernier message: 02/08/2005, 11h53

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