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 :

Trigger PL/SQL bloqué à l'exécution


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Par défaut Trigger PL/SQL bloqué à l'exécution
    Salut à tous,
    Je débute avec oracle et je suis bloqué. En fait je veux écrire un trigger qui va me donner un message de bienvenue à l'utilisateur chaque fois qu'il se connectera.
    Voici mon programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE OR REPLACE TRIGGER msg 
    AFTER LOGON 
    ON DATABASE
    BEGIN
    dbms_output.put_line('Bonjour Utilisateur');
    END;
    Quand j'exécute ce code, j'ai aucun message d'erreur. Si je me déconnecte puis me reconnecte j'ai pas le message de bienvenue.
    Quand j'exécute moi même le trigger avec execute msg, j'ai l'erreur suivante :

    SQL> execute msg;
    BEGIN msg; END;

    *
    ERROR at line 1:
    ORA-06550: line 1, column 7:
    PLS-00201: identifier 'MSG' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    Quelqu'un pourrait m'aider, merci!

  2. #2
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Houla, beaucoup de choses à revoir

    1) Ce serait mieux de mettre un nom parlant à ton trigger, genre trig_logon_msg; c'est plus facile pour identifier à quoi il sert
    2) Pour exécuter une procédure stockée, tu peux faire un exec mais là c'est un trigger! Donc pour l'exécuter hé ben il faut déclencher l'opération sur laquelle il a été créé donc il faut te connecter à chaque test.
    3) Sous SQL*Plus as-tu saisi SET SERVEROUTPUT ON;
    C'est indispensable pour afficher des infos à l'écran avec dbms_output.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Par défaut
    Merci pour tes corrections
    J'ai tapé SET SERVEROUTPUT ON; mais toujours rien.
    Voici mon code final
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SET SERVEROUTPUT ON;
    create or replace trigger trig_logon_msg
    after logon
    on database
    begin
    dbms_output.put_line('Bonjour Utrombino');
    end;
    /
    Quand je l'exécute, tout se passe bien mais il se déclenche toujours pas à la connexion.

  4. #4
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Euh, tu peux préciser "Quand je l'exécute, tout se passe bien mais il se déclenche toujours pas à la connexion."?
    Qu'entends-tu par "tout se passe bien"? il t'affiche le message ?
    Tu fais un exec?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Par défaut
    En fait, quand j'exécute le code précédent j'ai le message suivant : Trigger created. C'est de ce message dont je faisais allusion quand j'ai dit que tout se passe normalement.
    Mais lorsque je me déconnecte, puis me reconnecte j'ai pas le message de bienvenue. Le trigger ne se déclenche pas.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Dbms_output.enable dans le trigger...

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/06/2006, 22h03
  2. Trigger MS SQL
    Par rouche dans le forum Développement
    Réponses: 2
    Dernier message: 03/05/2006, 16h15
  3. [SQL] Problème d'exécution et d'affichage de requête !
    Par gabyloux dans le forum PHP & Base de données
    Réponses: 44
    Dernier message: 30/03/2006, 19h34
  4. Problème de date avec un trigger PL/SQL
    Par fluec-wa dans le forum PL/SQL
    Réponses: 6
    Dernier message: 18/01/2006, 14h56
  5. trigger en sql server
    Par chachil dans le forum Développement
    Réponses: 8
    Dernier message: 09/08/2005, 12h59

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