Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 14/12/2007, 21h01   #1
Invité régulier
 
Inscription : octobre 2006
Messages : 77
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 77
Points : 5
Points : 5
Par défaut Recuperer une requete pour un trigger

Bonjour,

Je dois faire une base clone des tables critiques de ma base.
Cette table dois etre totalement isolé etc etc.

Je pense faire un trigger sur les insert des tables concernés afin de copier les ligne updater/inserer/deleter dans la table clone.

Cependant je ne sais pas comment recuperer la requete executée dans mon insert/update/delete.

Est ce la bonne methode ?
Comment faire ?
kramer Mc Barreth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2007, 10h21   #2
Rédacteur
 
Inscription : décembre 2002
Messages : 2 397
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 397
Points : 3 298
Points : 3 298
Citation:
Envoyé par kramer Mc Barreth Voir le message
Cependant je ne sais pas comment recuperer la requete executée dans mon insert/update/delete.
Pour pouvoir reproduire les modifications de données, vous n'avez pas besoin de connaître la requête qui les a provoquées.
Le déclencheur FOR EACH ROW vous met automatiquement à disposition les pseudo lignes :NEW et :OLD, qui contiennent respectivement les nouvelles et les anciennes valeurs de la ligne de données. Libre à vous alors de les répercuter à votre guise vers la table cible.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2007, 14h12   #3
Invité régulier
 
Inscription : octobre 2006
Messages : 77
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 77
Points : 5
Points : 5
au niveau syntaxe ca donnerai:

Code :
1
2
3
4
5
6
CREATE TRIGGER nom_trigger ON nom_table_base_1
REFERENCING NEW AS nom_ligne
FOR EACH ROW AFTER INSERT
BEGIN
  INSERT nom_ligne INTO nom_table_base_clone
END;
Jen 'ai pas encore testé mais c'est un truc comme ca ?

Penser vous que ca marcheras ?
kramer Mc Barreth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2007, 22h34   #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
une vue matérialisée ferait aussi l'affaire non ?
orafrance 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 13h11.


 
 
 
 
Partenaires

Hébergement Web