Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour 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 13/05/2011, 12h28   #1
Membre habitué
 
Avatar de jlm22
 
Homme Jean-Louis
Etudiant
Inscription : décembre 2010
Messages : 199
Détails du profil
Informations personnelles :
Nom : Homme Jean-Louis
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : décembre 2010
Messages : 199
Points : 114
Points : 114
Par défaut Date insertion ligne

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
jlm22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 14h07   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
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
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
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 15h06   #3
Membre habitué
 
Avatar de jlm22
 
Homme Jean-Louis
Etudiant
Inscription : décembre 2010
Messages : 199
Détails du profil
Informations personnelles :
Nom : Homme Jean-Louis
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : décembre 2010
Messages : 199
Points : 114
Points : 114
Bonjour Alain,

A vrai dire je suis assez limité dans la modification de la base, moins j'en fait et mieux c'est , donc pour la table c'est une bonne solution j'y ai pensé mais ce n'est pas envisageable (à moins de ne pas avoir le choix ), j'ai regardé mes tables n'ont pas d'"ID". N'y a t-il pas une "propriété date" pour chaque tuple ?
jlm22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 17h34   #4
Membre à l'essai
 
Homme
Développeur informatique
Inscription : octobre 2002
Messages : 60
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2002
Messages : 60
Points : 22
Points : 22
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é) ?
bguihal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 07h27   #5
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 417
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 417
Points : 2 309
Points : 2 309
Salut !

Citation:
Envoyé par jlm22 Voir le message
(à moins de ne pas avoir le choix )
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/
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 16h16   #6
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 438
Points : 10 438
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 16h42   #7
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
Citation:
Envoyé par Waldar Voir le message
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
Et n'oublie pas de lire la doc :

http://download.oracle.com/docs/cd/E...columns007.htm
Citation:
This pseudocolumn is useful for determining APPROXIMATELY when a row was last updated
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/05/2011, 15h24   #8
Membre du Club
 
AC
Inscription : octobre 2010
Messages : 28
Détails du profil
Informations personnelles :
Nom : AC
Âge : 43
Localisation : Suisse

Informations forums :
Inscription : octobre 2010
Messages : 28
Points : 48
Points : 48
Je confirme l'utilisation de ora_rowscn

Code :
1
2
3
4
5
6
SELECT scn_to_timestamp(max(ora_rowscn)) 
FROM XX
WHERE rowid = 
(
SELECT rowid FROM XX  
WHERE condition)
wahnfried est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 15h29   #9
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 311
Points : 5 808
Points : 5 808
Et je confirme qu'il faut bien faire attention
Citation:
It is not absolutely precise, because Oracle tracks SCNs by transaction committed for the block in which the row resides. You can obtain a more fine-grained approximation of the SCN by creating your tables with row-level dependency tracking. Refer to CREATE TABLE ... NOROWDEPENDENCIES | ROWDEPENDENCIES for more information on row-level dependency tracking.

mnitu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/05/2011, 16h14   #10
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
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"
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/05/2011, 17h37   #11
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 263
Points : 3 263
Citation:
Envoyé par laurentschneider Voir le message
pas au delà de l'UNDO
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
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 23/05/2011, 19h09   #12
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
ok, désolé, j'ai répondu trop vite... rien avoir l'UNDO, j'aurais du dire pas éternellement

merci pour la correction
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider 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 13h13.


 
 
 
 
Partenaires

Hébergement Web