Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/04/2008, 15h08   #1
Invité régulier
 
Inscription : février 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 36
Points : 8
Points : 8
Par défaut Récupérer une requête SQL dans un trigger

Bonjour,

Dans un trigger, lors de la mise à jour d'une table, j'aimerais pouvoir récupérer le texte de la requête qui a mis à jour ma table (Insert, Update ou delete).

Y a t'il quelque chose pour ça ???

Merci par avance !
muchmorehuman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 18h34   #2
Provisoirement toléré
 
Inscription : juillet 2005
Messages : 114
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 114
Points : 62
Points : 62
cad tu veux recuperer la requete elle meme?
fontome_ 123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2008, 10h22   #3
Invité régulier
 
Inscription : février 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 36
Points : 8
Points : 8
Oui, je voudrais récupérer l'ordre SQL parsé et soumis à la base.
Exemple, si j'ai inséré une valeur 'a' dans mon champ CL dans la table TBL, je voudrais récupérer le texte 'INSERT INTO tbl (cl) VALUES ('a')' qui a généré l'insert dans un trigger before ou after.

L'objectif final est de stocker ces ordres et de permettre une diffusion sur des bases de données complétement distinctes.....
muchmorehuman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2008, 10h50   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Si tu es en 10g, utilise Streams qui est l'outil de réplication d'Oracle

Sinon, plutôt que récupérer les DML via un trigger, tu devrais utiliser logminer (ce que fait Streams en réalité )
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2008, 15h21   #5
Invité régulier
 
Inscription : février 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 36
Points : 8
Points : 8
Merci pour ta réponse.

Je suis sous ORACLE 8.
Par contre, ce besoin ne concerne qu'un nombre très limité de tables (de surcroit, le logmining n'est pas activé sur la base).
Je pense que je vais avoir du mal à justifier qu'il faille logguer toute activité sur plusieurs centaines de tables (puisqu'il faudrait vraissemblablement activer le supplemental logging), alors que j'ai ce besoin sur uniquement une quinzaine de tables. La performance risque d'être largement dégradée (la volumétrie et le nombre d'utilisateurs sont très importants).

Peut-on faire plus ou moins la même chose sans utiliser le logminer (je pensais aux triggers parceque cela me permet de cibler précisément les tables dont j'ai besoin et que de toutes les façons, j'ai déjà un trigger sur ces tables pour faire un certain nombre d'autres opérations) ???

Merci par avance !
muchmorehuman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2008, 09h19   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Dans ce cas pourquoi tu ne fais pas de snapshot ou simplement une vue en utilisant un db link ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2008, 11h32   #7
Invité régulier
 
Inscription : février 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 36
Points : 8
Points : 8
C'est à dire ?
"Comparer" mes tables entre les bases de données, c'est l'idée ?
muchmorehuman est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h38.


 
 
 
 
Partenaires

Hébergement Web