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 :

Probleme sur Trigger invalid


Sujet :

PL/SQL Oracle

  1. #1
    Membre régulier Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Points : 71
    Points
    71
    Par défaut Probleme sur Trigger invalid
    Bonjour ,

    Est ce qu'un trigger invalid peux créer un probleme dans une base de donnée ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Que signifie "Créer un problème" ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre régulier Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Points : 71
    Points
    71
    Par défaut Erreur , en fait je voulais dire Probleme sur un trigger invalid,
    Bonjur ,
    je me suis trompé dans la création de la discussion en fait , je parle de la création d'un trigger invalid qui créerai un probleme sur une base de donnée.
    Qui par exemple empecherai la création de lignes dans une voir plusieurs tables .

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Lorsqu'un déclencheur est invalide, c'est comme s'il n'existait pas, et il n'a donc aucun effet.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  5. #5
    Membre régulier Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Points : 71
    Points
    71
    Par défaut
    Donc un declencheur invalide mais actif ne peux pas avoir d'effet .

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Un déclencheur possède d'une part un statut d'activation (ENABLED ou DISABLED) visible dans la colonne STATUS de DBA_TRIGGERS, et d'autre part un statut de validité (VALID ou INVALID) visible dans la colonne STATUS de DBA_OBJECTS.

    Un déclencheur peut tout à fait être INVALID (code source comportant des erreurs qui empêchent sa compilation) et ENABLED, mais en effet, il ne s'exécutera pas, et ne produira donc aucun effet.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  7. #7
    Membre régulier Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Points : 71
    Points
    71
    Par défaut
    Merci Pomalaix pour ta reponse .
    Il y a certains de mes collegues qui me disent que parfois un trigger meme invalid, peux avoir des effets.

    Chose que j'ai peine a croire tout de meme...

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Un trigger INVALID peut en effet affecter les données... en n'effectuant pas les opérations qu'il serait censé faire s'il était valide
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  9. #9
    Membre régulier Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Points : 71
    Points
    71
    Par défaut
    Merci beaucoup pour vos reponses , je comprends mieux le probleme que j'ai rencontré.

  10. #10
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    ...
    Un déclencheur peut tout à fait être INVALID (code source comportant des erreurs qui empêchent sa compilation) et ENABLED, mais en effet, il ne s'exécutera pas, et ne produira donc aucun effet.
    Je pense que vous devez détailler/exemplifier vos propos
    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
     
    Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 
     
    SQL> create table t(a int);
    Table created
     
    SQL> create trigger bit 
      2  before insert on t
      3  for each row
      4  begin
      5    a := 1;
      6  end;
      7  /
    Warning: Trigger created with compilation errors
     
    SQL> insert into t values (2);
    insert into t values (2)
    ORA-04098: Déclencheur  'MNI.BIT' non valide. Echec de la revalidation
     
    SQL> select status
      2  from user_triggers
      3  where trigger_name = 'BIT'
      4  /
    STATUS
    --------
    ENABLED
     
    SQL> select status
      2  from user_objects
      3  where object_name = 'BIT'
      4  /
    STATUS
    -------
    INVALID

  11. #11
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Je pense que vous devez détailler/exemplifier vos propos
    Salut Marius, c'est en effet une bonne idée, et qui s'appliquerait avec bonheur à 80% de tes interventions

    Dans le cas présent, il manque à ton test le petit final qui démontre que j'ai dit une énormité.
    De fait, si le déclencheur est INVALID et ENABLED, il y a tentative d'exécution, mais sans succès, ce qui provoque l'annulation de l'instruction déclenchante.
    Le déclencheur invalide a donc bel et bien un effet
    (voir ligne 23 dans l'exemple ci-dessous).


    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
    SQL> create table t(a int);
    
    Table créée.
    
    SQL> create trigger bit
      2  before insert on t
      3  for each row
      4  begin
      5    a := 1;
      6  end;
      7  /
    
    Avertissement : Déclencheur créé avec erreurs de compilation.
    
    SQL> insert into t values (2);
    insert into t values (2)
                *
    ERREUR à la ligne 1 :
    ORA-04098: Déclencheur  'BIT' non valide. Echec de la revalidation
    
    SQL> select * from t;
    
    aucune ligne sélectionnée
    
    SQL> select status
      2  from user_triggers
      3  where trigger_name = 'BIT';
    
    STATUS
    --------
    ENABLED
    
    SQL> select status
      2  from user_objects
      3  where object_name = 'BIT';
    
    STATUS
    -------
    INVALID
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  12. #12
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Salut Pomalaix
    Citation Envoyé par Pomalaix Voir le message
    Salut Marius, c'est en effet une bonne idée, et qui s'appliquerait avec bonheur à 80% de tes interventions
    Bah, il suffit de me le demander

    Citation Envoyé par Pomalaix Voir le message
    Dans le cas présent, il manque à ton test le petit final qui démontre que j'ai dit une énormité.
    ...
    Je l'avais supprimé parce qu'il était redondant. En fait si l'insert aurait abouti il y aurait du y avoir le message de type:1 ligne insérée(s).

  13. #13
    Membre régulier Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Points : 71
    Points
    71
    Par défaut Merci , pour les reponses
    en conclusion :
    Un déclencheur invalid peux créer un problème sur une application qui par exemple lors de la création d'un utilisateur l'enregistre dans une table si le déclencheur a ce moment là est sollicité l'application va générer un message d'erreur qui peux être bloquant.
    Merci pour vos réponses

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

Discussions similaires

  1. Probleme sur un trigger
    Par phoenix345 dans le forum Développement
    Réponses: 2
    Dernier message: 02/01/2011, 14h42
  2. TRIGGER:Probleme sur After delete
    Par samsso2006 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 17/02/2010, 14h42
  3. probleme sur un trigger
    Par nah_wah dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 15/12/2009, 23h34
  4. probleme avec trigger sur mysql5.0
    Par aymen2506 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/07/2008, 10h34
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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