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

PL/SQL Oracle Discussion :

Problème sur trigger


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Par défaut Problème sur trigger
    Bonjour,

    J'ai une table eleve (id, nom).

    J'ai le trigger suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    create or replace 
    trigger TR_ELEVE 
    AFTER INSERT ON ELEVE
     
    BEGIN
     
    DBMS_OUTPUT.PUT_LINE('fin de transaction');
     
    END;

    J'essaie la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    INSERT INTO ELEVE (nom) VALUES ('djjjkt'); 
    INSERT INTO ELEVE (nom) VALUES ('doadkjf'); 
    INSERT INTO ELEVE (nom) VALUES ('djjodjfijt'); 
    INSERT INTO ELEVE (nom) VALUES ('dkdakmfakmf')
    COMMIT;

    J'obtiens les résultats ci-dessous. Je précise que l'autocommit est à OFF. (==>SHOW AUTOCOMMIT affiche autocommit OFF)

    1 ligne insérée
    fin de transaction

    1 ligne insérée
    fin de transaction

    1 ligne insérée
    fin de transaction

    1 ligne insérée
    fin de transaction

    Commit (validé)


    Pourtant, j'aimerais obtenir :

    1 ligne insérée
    1 ligne insérée
    1 ligne insérée
    1 ligne insérée
    fin de transaction
    commit (validé)

    Pouvez-vous m'aider ?
    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 31
    Par défaut avec des procédures ou un package
    Bonjour à vous,

    Je sais que cette solution n'est pas très belle, mais le trigger roule après chaque insert et non au commit.

    Il est donc plus pratique d'encapsuler le tout avec des procédures ou un package. Qu'en pensez-vous?

    Sylvain

    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
     
    set serverouput on
    set feedback off
     
    create table eleve(nom varchar2(20))
    /
     
    create or replace procedure eleve_insert (
      i_nom IN VARCHAR2)
    IS
    begin
      insert into eleve(nom)
      values (i_nom);
    end;
    /
     
    create or replace procedure eleve_commit
    IS
    begin
      dbms_output.put_line('fin de transaction');
      commit;
    end;
    / 
     
    exec eleve_insert('djjjkt'); 
    exec eleve_insert('doadkjf'); 
    exec eleve_insert('djjodjfijt');
    exec eleve_insert('dkdakmfakmf');
    exec eleve_commit;
     
    select * from eleve;

Discussions similaires

  1. Problème sur trigger Oracle
    Par LG1818 dans le forum SQL
    Réponses: 4
    Dernier message: 27/02/2015, 14h07
  2. Problème sur Trigger Déclaration de variable
    Par Sekigawa dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 11/05/2008, 15h01
  3. Problème sur les triggers
    Par loic20h28 dans le forum Langage SQL
    Réponses: 15
    Dernier message: 22/01/2008, 18h37
  4. PL/SQL problème sur Trigger
    Par kitsune dans le forum PL/SQL
    Réponses: 4
    Dernier message: 06/12/2005, 20h35
  5. Problème sur un Trigger
    Par Isa31 dans le forum Oracle
    Réponses: 35
    Dernier message: 28/10/2005, 09h48

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