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

DB2 Discussion :

fetch et delete


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 28
    Par défaut fetch et delete
    bonjour,

    j'ai pour tache de créer un prg de reprise pour supprimer les occurrences en double d'une table, cad avec la même référence.

    cette référence est en quelque sorte une clé primaire qui n'en est pas une sur le plan de la définition et du coup certains doublons sont apparus.

    je suis parti pour fetcher toute la table en ordonnant par cette référence.
    mise en mémoire de la référence et suppresion si la référence du fetch en cours = référence en mémoire.

    seulement voilà, quand je fait le delete, je n'ai pas de "where" exclusif à disposition

    y a t'il un moyen de dire "je veux supprimer l'occurence pointé par le fetch" ?

    ou pas ?

    merci.

  2. #2
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 28
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    EXEC SQL                   
      DELETE FROM TSIIMPR           
       WHERE CURRENT OF CURSEUR
    END-EXEC


    désolé

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    Si j'ai bien compris ce que tu veux faire, c'est à dire supprimer les doublons sur colonne "REF" dans une table, il y a peut-être plus simple pour y arriver.

    Pas besoin de curseur ni de fetch. Une seule instruction SQL avec une sous-select devrait suffire et, sur le plan des perf, ya pas photo.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE FROM MaTable A
    WHERE RRN( A ) NOT IN (
    SELECT MAX( RRN( B ) ) FROM MaTable B WHERE A.REF = B.REF) )
    Est-ce que ça te parle ?

  4. #4
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 28
    Par défaut
    merci mais ça ne marche pas RRN(A) chez moi

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    Tu es sous quel SGBD DB2 ?
    DB2 for z/os, DB2/400, autre chose ?

  6. #6
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 28
    Par défaut
    DB2 for z/os

    j'ai fait ça sous spufi pour voir si ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * FROM tst.tsistkim A              
    WHERE RRN( A ) NOT IN (                   
    SELECT MAX( RRN( B ) ) FROM tst.tsistkim B
    WHERE A.REF_IMPRIME = B.REF_IMPRIME );
    résultat :
    DSNT408I SQLCODE = -206, ERROR: A IS NOT A COLUMN OF AN INSERTED TABLE,
    UPDATED TABLE, OR ANY TABLE IDENTIFIED IN A FROM CLAUSE, OR IS NOT A
    COLUMN OF THE TRIGGERING TABLE OF A TRIGGER

    et quand je mets le nom complet de la table, j'ai la même chose

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

Discussions similaires

  1. Mécanisme de Soft Delete et fetch
    Par djarBoy dans le forum QxOrm
    Réponses: 2
    Dernier message: 05/03/2012, 10h17
  2. Le rollback explose au moment du FETCH d'un Curseur
    Par Krashtest dans le forum Administration
    Réponses: 10
    Dernier message: 18/08/2003, 09h46
  3. [requête] DELETE + SELECT
    Par doohan dans le forum Requêtes
    Réponses: 6
    Dernier message: 07/07/2003, 12h27
  4. utilisation de fetch avec select
    Par arwen dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/06/2003, 10h03
  5. [langage] delete de fichier
    Par lolive dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2003, 15h04

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