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 :

PB TRIGGER ne fonctionne pas


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 114
    Par défaut PB TRIGGER ne fonctionne pas
    Bonsoir,
    je suis un novice et je m'entraine a faire des tests et notamment sur les triggers.
    JE comprends pas j'ai créé un trigger sur un update,insert , delete et il ne' agit pas ?
    Pourriez vous m'aider à trouver l'origine de l'erreur.
    Voici mon trigger:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE OR REPLACE TRIGGER EMP_MODIF 
    BEFORE INSERT OR DELETE OR UPDATE ON EMPLOYEES 
    BEGIN
    DBMS_OUTPUT.PUT_LINE('modification prise en compte');
    END;
    je rentre ce code sql et rien ne sa passe hormis la mise à jour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE  EMPLOYEES set EMPLOYEES.FIRST_NAME='jymmy' where EMPLOYEES.EMPLOYEE_ID=100;

    meric de votre aide

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

    Informations forums :
    Inscription : Août 2008
    Messages : 2 952
    Par défaut
    DBMS_OUTPUT.PUT_LINE, dans quel environnement testes tu ton code ?
    Si c'est sqlplus il faut faire avant :
    Si c'est SqlDevelopper il faut cliquer sur :
    view > dbms_output
    ensuite cliquer sur la croix verte ("enable dbms_ouput for connection") puis recommencer ton test.
    Si c'est toad, je ne l'ai pas sous la main mais si je me souviens bien il y a un onglet dbms_output "dans la zone du bas"

    Je n'ai pas testé avec ton trigger si tu n'as toujours pas d'affichage j'essaierais avec ton code.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 114
    Par défaut
    salut
    il s'agit de sqldevelopper mais je vois pas ou tu veux que je clique :
    "view > dbms_output"
    Merci
    Autre point j'essaie de m'entrainer sur la manipulation des curseurs.
    est ce une bonne chose de les utiliser via des procédures ?
    Merci

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

    Informations forums :
    Inscription : Août 2008
    Messages : 2 952
    Par défaut
    Citation Envoyé par pepitoluna Voir le message
    il s'agit de sqldevelopper mais je vois pas ou tu veux que je clique :
    "view > dbms_output"
    Ben dans le menu en haut (entre navigate et versioning) il y a view et dans les possiilités offertes par view il y a dbms_output....

    Pour les curseurs ça dépend comment tu les utilises... si c'est faire des boucles pour insérer ou updater des lignes efectivement c'est très souvent inutil, si c'est pour renvoyer un paramètre OUT d'une procédure en SYS_REFCURSOR alors ça a du sens.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 114
    Par défaut
    merci
    je dois être un peu fatigué je ne trouve vraiment pas cette option dans le menu
    qui est en francais et est composé ( fichier, modifier ,affichage, naviguer , executer, gestion des vresions, outils, aide)


    par contre j'aurais une question sur une procédure comportant un curseur que je suis en train d'écrire et qui me rejette l'expression fetch je ne comprends pas pourquoi si quelqu un aurait une piste :
    voici mon 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
    21
    22
    23
     
     
    create or replace
    PROCEDURE TEST AS 
    BEGIN 
       DECLARE 
     
      CURSOR CR_employées( id_dept number ) IS (select employees.employee_id, EMPLOYEES.FIRST_NAME,departments.department_id,departments.manager_id from  employees,departments where departments.department_id = EMPLOYEES.DEPARTMENT_ID  and departments.department_id=id_dept);
     
    employ CR_employées%ROWTYPE;
     
     
    OPEN CR_employées;
     
    LOOP
    fetch CR_employées INTO employ;
    EXIT WHEN CR_employées%NOTFOUND;
    dbms_output.put_line(employ.FIRST_NAME);
     
    END LOOP ;
    end;
     
    END TEST;
    merci encore pour l'aide apportée

  6. #6
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 114
    Par défaut
    ps: je me suis trompé
    voici le code qui ne fonctionne pas :

    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 or replace
    PROCEDURE TEST AS 
    BEGIN 
       DECLARE 
     
      CURSOR CR_employées( id_dept number ) IS (select employees.employee_id, EMPLOYEES.FIRST_NAME,departments.department_id,departments.manager_id 
       from  employees,departments where departments.department_id = EMPLOYEES.DEPARTMENT_ID  and departments.department_id=id_dept);
     
    employ CR_employées%ROWTYPE;
     
     
    OPEN CR_employées (1);
     
    LOOP
    fetch CR_employées INTO employ;
    EXIT WHEN CR_employées%NOTFOUND;
    dbms_output.put_line(employ.employee_id);
     
    END LOOP ;
    end;
     
    END TEST;

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

Discussions similaires

  1. Trigger ne fonctionnent pas
    Par DUALTECH dans le forum Bases de données
    Réponses: 8
    Dernier message: 19/05/2012, 13h57
  2. TRIGGER ne fonctionne pas
    Par tonymontana4192 dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 05/08/2008, 22h31
  3. trigger ne fonctionnant pas
    Par kifouillou dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/02/2008, 18h42
  4. TRIGGER (test avant ajout) ne fonctionne pas correctement
    Par marcusien dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/06/2007, 18h02
  5. mon trigger ne fonctionne pas !
    Par japi33 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 20/03/2006, 21h26

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