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 :

Problême déclencheur oracle


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Chef de projet Technique
    Inscrit en
    Avril 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet Technique

    Informations forums :
    Inscription : Avril 2007
    Messages : 89
    Par défaut Problême déclencheur oracle
    Bonjour,

    j'aimerais incrémenter automatiquement une valeur dans une table et qu'elle s'incrémente également dans une autre table.
    Voici mon code actuel qui ne fonctionne pas:

    les 2 première partie marche

    /*Création d'une séquence d'auto incrémentation */
    CREATE SEQUENCE seq_autoIncrementOrdeCadre
    START WITH 1
    MAXVALUE 999999999999999999999999
    MINVALUE 1
    NOCYCLE
    NOCACHE
    NOORDER;

    /*Création d'un déclencheur */
    CREATE TRIGGER autoIncrementOrdeCadre
    BEFORE INSERT
    ON cadre
    FOR EACH ROW
    BEGIN
    SELECT seq_autoIncrementOrdeCadre.NEXTVAL
    INTO :NEW.ordre_cadre
    FROM dual;
    END ;
    /


    j'ai une erreur à partir d'ici:

    /*Création d'un déclencheur */
    CREATE TRIGGER autoIncrementOrdeCadreLigne
    BEFORE INSERT
    ON cadre_ligne
    FOR EACH ROW
    BEGIN
    SELECT seq_autoIncrementOrdeCadre.NEXTVAL
    INTO :NEW.ordre_cadre
    FROM dual;
    END ;
    /

  2. #2
    Membre éclairé Avatar de Nounoursonne
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 264
    Par défaut
    mouais, ça doit venir de la ligne 12

  3. #3
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut
    Bonjour,

    Quelle est l'erreur que tu as ?

    Essaye de faire un curval avant de faire le nextval (pas sure que ça change quelques chose, mais juste pour voir)

    voili, voilou
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 126
    Par défaut pb de séquence dans un déclencheur
    Bonsoir,

    Tu dois récupérer la séquence dans une variable, puis utiliser cette variable.

    Cdt

  5. #5
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 126
    Par défaut
    Bonjour,

    J'ai retrouvé un script qui explicite la méthode

    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
    create or replace trigger TRG_TOTO before insert
    on TOTO for each row
    declare
        integrity_error  exception;
        errno            integer;
        errmsg           char(200);
        no	number;
    begin
        select seq_toto.nextval into no from dual;
        :new.toto_id := no;
     
    --  Traitement d'erreurs
    exception
        when integrity_error then
           raise_application_error(errno, errmsg);
    end;
    /
    Cdt

  6. #6
    Membre éprouvé
    Profil pro
    Chef de projet Technique
    Inscrit en
    Avril 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet Technique

    Informations forums :
    Inscription : Avril 2007
    Messages : 89
    Par défaut
    Bonjour,

    Je ne parvient pas à comprendre les lignes suivantes:
    select seq_toto.nextval into no from dual;
    :new.toto_id := no;


    pouvez vous m'expliquer ce qu'elles font ?

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

Discussions similaires

  1. problème déclencheur sur oracle
    Par gapse dans le forum Oracle
    Réponses: 2
    Dernier message: 25/07/2006, 09h58
  2. Réponses: 1
    Dernier message: 22/03/2006, 08h24
  3. Problème sur Oracle Toolbox
    Par Doctor Z dans le forum Oracle
    Réponses: 9
    Dernier message: 09/11/2004, 08h48
  4. Problème Migration Oracle
    Par bob_doulz dans le forum Administration
    Réponses: 4
    Dernier message: 20/04/2004, 09h56
  5. Problème composant Oracle
    Par alexmorel dans le forum Bases de données
    Réponses: 12
    Dernier message: 24/02/2004, 08h53

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