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 :

Erreur sur un trigger


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de mboubidi
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Novembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : DBA Oracle
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 326
    Par défaut Erreur sur un trigger
    Bonjour les amis,
    j'ai crée un trigger d'audit DDL qui inser les information dans une table, mais a la création j'ai l'erreur suivante:

    Warning: Trigger created with compilation errors
    pour le code que j'ai utiliser est le suivant:

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    SQL> CREATE OR REPLACE TRIGGER log_trig
      2  after DDL on database
      3  declare
      4     var_user      varchar2(30);
      5     var_osuser    varchar2(30);
      6     var_DDL_TYPE  VARCHAR2(255);
      7     var_object_type VARCHAR2(255);
      8     var_object_name VARCHAR2(255);
      9     var_machine   varchar2(64);
     10     var_process   varchar2(8);
     11     var_program   varchar2(48);
     12   begin
     13     select
     14        username,
     15        osuser,
     16        ora_sysevent,
     17        ora_dict_obj_type,
     18        ora_dict_obj_name,
     19        machine,
     20        process,
     21        program
     22     into
     23        var_user,
     24        var_osuser,
     25        var_DDL_TYPE,
     26        var_object_type,
     27        var_object_name,
     28        var_machine,
     29        var_process,
     30        var_program
     31     from
     32        v$session
     33     where
     34        audsid=userenv('sessionid');
     35  
     36     insert into
     37       system.stats_server_log
     38     values(
     39        sysdate,
     40        var_user,
     41        var_osuser,
     42        var_DDL_TYPE,
     43        var_object_type,
     44        var_object_name,
     45        var_machine,
     46        var_process,
     47        var_program);
     48  end;
     49  /
    maintenant il est désactiver et impossible de le recompiler.
    est ce que vous pouvez m'aider concernant ce problème.
    je vous remercie d'avance.
    Salutations.

  2. #2
    Membre éclairé
    Avatar de mboubidi
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Novembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : DBA Oracle
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 326
    Par défaut
    quand je recompile j'ai l'erreur suivante:

    TRIGGER SYSTEM.LOG_TRIG
    On line: 30
    PL/SQL: ORA-00942: table or view does not exist

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Tu n'as pas les droits de lecture sur v$session.. c'est tout.

    Tu as essayé de lancer le code directement (sans le create trigger) ?

    Select into puis Insert into , pourquoi pas faire un insert into select ?

  4. #4
    Membre éclairé
    Avatar de mboubidi
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Novembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : DBA Oracle
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 326
    Par défaut
    Citation Envoyé par McM Voir le message
    Tu n'as pas les droits de lecture sur v$session.. c'est tout.

    Tu as essayé de lancer le code directement (sans le create trigger) ?

    Select into puis Insert into , pourquoi pas faire un insert into select ?
    Bonjour,
    je te remercie pour ta réponse, pour l'accès je suis DBA, autre information, j'ai testé cette procédure sur 2 base Test

  5. #5
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par mboubidi Voir le message
    Bonjour,
    je te remercie pour ta réponse, pour l'accès je suis DBA, autre information, j'ai testé cette procédure sur 2 base Test
    DBA c'est un role et dans Pl/SQL cella ne suffit 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    Connecté à :
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - Production
     
    SQL> create user toto identified by toto;
     
    Utilisateur créé.
     
    SQL> grant dba to toto;
     
    Autorisation de privilèges (GRANT) acceptée.
     
    SQL> connect toto/toto;
    Connecté.
    SQL> select count(*)
      2    from v$session;
     
      COUNT(*)
    ----------
            20
     
    SQL> create or replace function f_cpt return number is
      2    l_num number;
      3  begin
      4    select count(*)
      5      into l_cpt
      6      from v$session;
      7  end;
      8  /
     
    Avertissement : Fonction créée avec erreurs de compilation.
     
    SQL> show errors
    Erreurs pour FUNCTION F_CPT :
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    4/3      PL/SQL: SQL Statement ignored
    6/10     PL/SQL: ORA-00942: Table ou vue inexistante

  6. #6
    Membre éclairé
    Avatar de mboubidi
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Novembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : DBA Oracle
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 326
    Par défaut
    je te remercie chef pour ton aide, j'ai donner des grant au user system, mais ce que j'ai remarquer contrairement a la base test, la il me logue rien, aucune transaction des DDL

Discussions similaires

  1. Erreur sur les triggers
    Par tafistar dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 22/07/2013, 14h04
  2. Erreurs sur un trigger BEFORE DELETE
    Par Daikyo dans le forum PL/SQL
    Réponses: 1
    Dernier message: 13/06/2008, 02h13
  3. Erreurs sur un trigger qui fonctionne !
    Par Daikyo dans le forum PL/SQL
    Réponses: 2
    Dernier message: 12/06/2008, 11h07
  4. Récupérer un erreur sur l'exécution d'un trigger
    Par tchoimars dans le forum PL/SQL
    Réponses: 1
    Dernier message: 06/06/2007, 16h07
  5. Erreur ORA-04082 sur un trigger
    Par elcaro92 dans le forum Oracle
    Réponses: 2
    Dernier message: 31/01/2005, 21h30

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