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

PL/SQL Oracle Discussion :

Comment supprimer un élément d'une loop ?


Sujet :

PL/SQL Oracle

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Battosaiii
    Invité(e)
    Par défaut Comment supprimer un élément d'une loop ?
    Bonjour,

    J'aimerais pouvoir supprimer la ligne rec (le premier résultat de la boucle)
    J'aimerais faire un delete de rec si rec a des champs egaux avec rec2.
    Voir le code ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    FOR rec IN ( select r.ID_DEMANDE,r.TYPE_EXAMEN, r.DATE_PRESCRIPTION
    			          from radiologie r
    			          where r.ID_EXAMEN LIKE '%*'
      )
      LOOP  
    		FOR rec2 IN ( select r.ID_DEMANDE,r.TYPE_EXAMEN, r.DATE_PRESCRIPTION
    					from radiologie r
    		)
    		LOOP
     
    			IF(rec2.ID_DEMANDE = rec.ID_DEMANDE,SUBSTR(rec.ID_EXAMEN,1,2)
    				and r3.TYPE_EXAMEN = rec.TYPE_EXAMEN
    				and r3.ID_EXAMEN LIKE '%*'
    				and TO_CHAR (r3.DATE_PRESCRIPTION, 'DD/MM/YYYY HH24:mi:ss')= TO_CHAR (rec.DATE_PRESCRIPTION, 'DD/MM/YYYY HH24:mi:ss');)
                            DELETE rec 
     
     
    		END LOOP;
     
       END LOOP;
    Comme vous le voyez j'aimerais supprimer rec si une condition est remplie. Je ne sais pas comment faire cela en SQL. COmment faire ceci en SQL ou PL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    IF(rec2.ID_DEMANDE = rec.ID_DEMANDE,SUBSTR(rec.ID_EXAMEN,1,2)
    				AND r3.TYPE_EXAMEN = rec.TYPE_EXAMEN
    				AND r3.ID_EXAMEN LIKE '%*'
    				AND TO_CHAR (r3.DATE_PRESCRIPTION, 'DD/MM/YYYY HH24:mi:ss')= TO_CHAR (rec.DATE_PRESCRIPTION, 'DD/MM/YYYY HH24:mi:ss');)
                            DELETE rec

    Voici l'algorithme que je tente de reproduire :


    Pour chaque ligne de la table RADIOLOGIE dont ID_EXAMEN se termine par une étoile
    si pour le triplet T1 = [ ID_DEMANDE concaténé avec les 2 premiers caractères de ID_EXAMEN ; TYPE_EXAMEN ; DATE_PRESCRIPTION ]
    il existe une ligne de la table RADIOLOGIE dont le triplet T2 = [ ID_DEMANDE ; TYPE_EXAMEN ; DATE_PRESCRIPTION] est égal à T1
    alors supprimer la ligne (correspondant à T1, T2 étant une version plus récente du doublon)


    Merci
    Dernière modification par Battosaiii ; 27/05/2011 à 17h14.

Discussions similaires

  1. Comment supprimer un élément d'une ListView ?
    Par xXO--Hades--OXx dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 12/12/2010, 16h57
  2. Réponses: 7
    Dernier message: 16/05/2006, 15h40
  3. Supprimer un élément d'une TObjectList
    Par Lung dans le forum Langage
    Réponses: 15
    Dernier message: 30/05/2005, 17h32
  4. Réponses: 17
    Dernier message: 18/03/2005, 15h56
  5. Réponses: 14
    Dernier message: 15/01/2004, 01h15

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