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

SQL Oracle Discussion :

Sélectionner uniquement les lignes rajoutées depuis la dernière sélection


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Points : 37
    Points
    37
    Par défaut Sélectionner uniquement les lignes rajoutées depuis la dernière sélection
    Bonjour,

    J'ai une table avec un grand nombre de lignes (plusieurs millions).
    Un traitement est effectué en fonction des valeurs de chaque lignes. Le traitement est un peu complexe et ne doit donc traiter qu'une seule fois une ligne.

    La table est remplie régulièrement par un applicatif et je cherche à ne récupérer que les nouvelles lignes rajoutées depuis la derniere récupération.

    Je n'ai bien sur pas la possiblité de modifier la structure de la table et des données qu'elle contient, ca serait trop facile .

    J'aimerai faire cela en SQL si possible mais je suis ouvert à toutes les possiblités (JDBC, ... ).

    Merci

    Falcon74

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Sans modifier la table je vois mal comment tu pourrais faire... peut-être en partitionnant et encore

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Points : 37
    Points
    37
    Par défaut
    C'est bien ce que je pensais

    J'esperai quand meme que des experts pourraient avoir une idée me sauvant la vie.

    Je sens que je vais pas m'amuser pour faire ma collecte

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    tu peux aussi tenter ta chance avec les materialized view. Tu crées une MV et pour trouver les dernières lignes tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM
    latable 
    WHERE id NOT IN (SELECT id FROM mv)
    Ou NOT EXISTS... quand t'as récupéré tes lignes tu rafraichis la MV.

    Par contre, gare aux perfs

  5. #5
    Membre éclairé Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Points : 773
    Points
    773
    Par défaut
    Si tu fais un traitement sur seulement les nouvelles lignes, c'est que ton traitement est historisé (Une colonne est remplie ou bien une ligne résultat est insérée dans une table fille, ...).

    Donc, il doit bien y avoir une requête créant un "cursor for update" qui te permet soit d'avoir les lignes dont la colonne est nulle, soit les lignes n'ayant pas de correspondance dans la ou les tables filles.

    Non ?


  6. #6
    Membre actif Avatar de JerryMouse
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 215
    Points : 295
    Points
    295
    Par défaut
    Une autre solution serait de créer une table dans laquelle tu mettras les Primary keys des enregistrements déjà traités.
    Il suffirait par la suite de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ... where not exists...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Points : 37
    Points
    37
    Par défaut
    Merci pour les différentes possibilités.

    Mon client va devoir accepter un minimum d'intrusion dans la base de son applicatif si il veux que ca fonctionne.

    Ca va discuter sec

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

Discussions similaires

  1. [XL-2007] ListView - Copier uniquement les lignes cochées dans une autre ListView
    Par BenHK dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2009, 01h46
  2. [Toutes versions] sélectionner uniquement les chiffres dans une phrase ?
    Par bourrico dans le forum VBA Word
    Réponses: 1
    Dernier message: 24/09/2009, 00h12
  3. Réponses: 3
    Dernier message: 18/02/2009, 10h00
  4. Comment sélectionner que les lignes doublons
    Par Inconnu_du_69 dans le forum Langage SQL
    Réponses: 20
    Dernier message: 12/02/2009, 16h18
  5. [VBA-E] Imprimer uniquement les lignes visibles
    Par Sebastien_INR59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/06/2006, 16h23

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