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 récupérant la clause Where


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 198
    Par défaut Trigger récupérant la clause Where
    Bonjour,

    est il possible de faire un trigger de type each row qui permet de récupérer la requete passée sur la table et ensuite de la décomposer

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    update table set (numero,designation) = (1,'toto') where id = 30;
    je connais :NEW et :OLD qui gère les valeurs

    mais en PL/SQL y a t'il une méthode pour récupérer la clause where de la requête passée sur la table et qui donc me renverrait clause = "id = 30"

    Merci d'avance pour vos conseils

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    salut ,

    Je vois pas l'utilité de ton trigger.

    1-En forms il y a le :system.last_query aprés tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    substr(:system.last_query,instr(:system.last_query,'where',1)+5)
    remarque :
    il faut aussi vérifier s'il n'y pas pas d'autre where.

    2-En plsql il mfaut voir v$sqlarea

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 198
    Par défaut
    Citation Envoyé par salim11
    salut ,
    Je vois pas l'utilité de ton trigger.
    en fait c'est pour tracer les requêtes appliquées ds une autre table

    avec la capacité de les réappliquer en fonction de leur contenu

    genre la clause where est du type id = 30 alors on fait ca*

    mais si la clause where est du type designation = 'toto' alors on fait autres chose...

  4. #4
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Salut,

    Merci pour l'explication.

    Tu peux voir aussi ce lien:
    http://download-west.oracle.com/docs...0b.htm#2060025

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 198
    Par défaut
    J'ai regardé du côté de v$sqlarea on a effectivement la requete mais c'est pas gagné...

    je regarderai du côté de l'audit

    mon fantasme de pouvoir isoler la clause where dasn le cadre d'une seule fonction s'éloigne à grand pas, vive le bricolage

    merci qd même

  6. #6
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    salut ,

    il y a le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    substr(nom_query,instr(nom_query,'where',1)+5)

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

Discussions similaires

  1. [SQL2008][TSQL] Clause WHERE NOT IN dans un trigger
    Par greg360 dans le forum Développement
    Réponses: 4
    Dernier message: 19/11/2010, 18h19
  2. Ordre des tests dans la clause WHERE
    Par Tans98 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/09/2004, 10h52
  3. Problème clause WHERE
    Par Invité dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2004, 15h07
  4. probleme avec le caractere 'Z' dans ma clause WHERE
    Par dibox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/04/2004, 12h21
  5. [ character en simple cote ] clause Where
    Par hocinema dans le forum DB2
    Réponses: 3
    Dernier message: 20/02/2004, 10h17

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