|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Jean-Louis Etudiant Inscription : décembre 2010 Messages : 199 ![]() |
Bonjour,
J'aimerais récupérer les lignes d'une table qui ont été insérées dans la journée, mais je ne peux pas ajouter de colonne date (contrainte) dans ma table. Peut-t-on récupérer la date de création de la ligne ? Merci d'avance |
|
|
00
|
|
|
#2 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Si tu ne peux pas ajouter de colonne dans ta table, peux-tu ajouter une table (id_ligne_modifiée, date_modification) que tu alimenterais avec un trigger ON INSERT ?
Autre possibilité, si ta table à surveiller a une clé basée sur une séquence, récupérer en fin de journée l'ID de la dernière ligne modifiée.
__________________
Modérateur Langage 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 ![]() |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Jean-Louis Etudiant Inscription : décembre 2010 Messages : 199 ![]() |
Bonjour Alain,
A vrai dire je suis assez limité dans la modification de la base, moins j'en fait et mieux c'est ), j'ai regardé mes tables n'ont pas d'"ID". N'y a t-il pas une "propriété date" pour chaque tuple ?
|
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Développeur informatique Inscription : octobre 2002 Messages : 60 ![]() |
non ça n'existe pas.
tu ne peux pas mettre la colonne et la géré par trigger (comme cela pas de modif dans le code rattaché) ? |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 417 ![]() |
Salut !
T'as de la chance, il n'y a pas le choix
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
|
00
|
|
|
#6 |
![]() ![]() |
Si vous cherchez des données pas trop anciennes, vous pouvez vous appuyer sur le ora_rowscn comme indiqué ici par Pomalaix :
http://www.developpez.net/forums/d10...s/#post5615052
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
Citation:
http://download.oracle.com/docs/cd/E...columns007.htm Citation:
|
||
|
10
|
|
|
#8 | ||
|
Membre du Club
![]() ACInscription : octobre 2010 Messages : 28 ![]() |
Je confirme l'utilisation de ora_rowscn
Code :
|
||
|
|
00
|
|
|
#9 | |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Et je confirme qu'il faut bien faire attention
Citation:
|
|
|
|
10
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
j'adore more fine-grained approximation...
Une meilleure approximation, mais une approximation quand même, qui ne marchera pas forcément avec tous les types de tables, pas au delà de l'UNDO, pas lors d'un déplacement de tablespace ou autre reorg, bref une "meilleure approximation" mais pas une "info fiable" |
|
10
|
|
|
#11 |
![]() Inscription : décembre 2002 Messages : 2 385 ![]() |
Je suis très perplexe, là !
Pour moi, ce qui rend le succès de ORA_ROWSCN fondamentalement aléatoire pour une table ordinaire (sans parler de modifications "parasites" dues à des réorgs), c'est la faible capacité de SMON_SCN_TIME, qui fait qu'au delà d'un "certain temps" (les fameux plus ou moins 5 jours), on est incapable de retrouver la correspondance entre le SCN de dernière modification du bloc, et l'horodate correspondante. A ma connaissance, l'UNDO n'intervient pas là-dedans, l'ORA_ROWSCN, qu'il soit de niveau bloc ou de niveau ligne selon ROWDEPENDENCIES, est stocké dans le bloc de données lui-même, et c'est juste sa conversion en temps qui pose problème : SCN_TO_TIMESTAMP jette l'éponge. Tanel Poder a d'ailleurs une astuce à ce propos (http://blog.tanelpoder.com/2009/02/0...e-last-changed) : si SMON_SCN_TIME ne peut fournir l'info, il essaye de calculer une approximation plus grossière de la date du changement à l'aide de V$LOG_HISTORY (FIRST_CHANGE# fournit le SCN, et FIRST_TIME l'horadate équivalente). Mais s'il y a réellement une subtilité au niveau de l'UNDO, je suis friand de la découvrir !
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
20
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
ok, désolé, j'ai répondu trop vite... rien avoir l'UNDO, j'aurais du dire pas éternellement
merci pour la correction
|
|
00
|
Copyright © 2000-2012 - www.developpez.com