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 :

Erreur de déclencheur - Echec de la revalidation (ORA-04098)


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Dev
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Par défaut Erreur de déclencheur - Echec de la revalidation (ORA-04098)
    Bonjour à tous,

    J'ai un souci d'insertion avec un trigger pour gérer l'autoincrément.
    Je ne comprends pas ce qui provoque l'erreur (cf capture d'écran).
    Je suis connecté SYSTEM.
    Quelqu'un peut-il m'aiguiller sur le problème ?
    Merci d'avance.

    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
    CREATE TABLE "SYSTEM"."TEST" 
       (	"id" NUMBER(10,0), 
    	"TESTDATA" VARCHAR2(255 BYTE)
       ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "SYSTEM" ;
     
     
    CREATE OR REPLACE TRIGGER "SYSTEM"."TRIG_AUTOINC_TEST" 
    BEFORE INSERT 
    ON test 
    FOR EACH ROW 
    BEGIN 
    SELECT SEQ_test.NEXTVAL 
    INTO :NEW.id 
    FROM DUAL; 
    END;
    /
    ALTER TRIGGER "SYSTEM"."TRIG_AUTOINC_TEST" ENABLE;
     
     
      CREATE SEQUENCE  "SYSTEM"."SEQ_TEST"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 21 CACHE 20 NOORDER  NOCYCLE ;
    Images attachées Images attachées  

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Que donne SHOW ERR après la création du trigger ?

  3. #3
    Membre averti
    Profil pro
    Dev
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Par défaut
    Citation Envoyé par orafrance Voir le message
    Que donne SHOW ERR après la création du trigger ?
    C'est une erreur de compilation :
    Erreur(9,6): PLS-00049: variable attachée (bind variable) erronée 'NEW.ID'

    Mais je ne vois toujours pas pourquoi, la colonne Id existe bien dans ma table...

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Essaye d'ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    referencing old as OLD new as NEW

  5. #5
    Membre averti
    Profil pro
    Dev
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Par défaut
    Citation Envoyé par orafrance Voir le message
    Essaye d'ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    referencing old as OLD new as NEW
    Hélas, cela ne change rien...
    Pour mon information, que signifient ces paramètres ?

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    C'est pour dire comment référencer les anciennes et nouvelles valeurs.

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 954
    Par défaut
    Citation Envoyé par Volpe80 Voir le message
    Je suis connecté SYSTEM.
    Déjà ça ça ne va pas, crée un user et donne lui des droits pour tes tests :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    create user ton_user identified by mdp;
    grant connect, resource, dba to ton_user;

  8. #8
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Par défaut
    Citation Envoyé par Volpe80 Voir le message
    Bonjour à tous,
    Je suis connecté SYSTEM.
    Quelqu'un peut-il m'aiguiller sur le problème ?
    Merci d'avance.
    Bonjour,

    Tout d'abord, le meilleur conseil à vous donner ici c'est de ne plus créer d'objets dans le schéma (ou user) SYSTEM


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      CREATE SEQUENCE  "SYSTEM"."SEQ_TEST"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 21 CACHE 20 NOORDER  NOCYCLE ;
    Veuillez bien à ce que la séquence soit créé avant le trigger

    Bien cordialement

    Mohamed Houri

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/09/2011, 18h27
  2. Réponses: 1
    Dernier message: 16/11/2009, 15h48
  3. Message d'erreur ORA-04098
    Par seven831 dans le forum SQL
    Réponses: 2
    Dernier message: 21/01/2008, 09h51
  4. [rman][sncf.ora] Erreur de backup RMAN : fichier SNCF(SID).ORA
    Par Alain B. dans le forum Recovery Manager
    Réponses: 9
    Dernier message: 05/12/2006, 18h16
  5. Erreur de déclencheurs
    Par irenee dans le forum Oracle
    Réponses: 19
    Dernier message: 07/09/2006, 16h13

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