Rafa Comino escribió: > curpet CURSOR (fechaI DATE, fechaF DATE) FOR > SELECT isbn, identidad, idpeticion, fechapeticion > FROM peticiones > WHERE fechapeticion >= fechaI > AND fechapeticion <= fechaF > AND tipopeticion = 'PC' > AND completa = true > ORDER BY fechapeticion;
> OPEN curpet(ldt_fini, ldt_ffin); > -- Saco el primer registro > FETCH curpet INTO lr_pet; > WHILE FOUND LOOP > IF ((SELECT COUNT(*) FROM log_peticiones WHERE isbn = lr_pet.isbn > AND identidad = lr_pet.identidad AND tipopeticion='PC' AND fechapeticion >= > ldt_fechanocobrar) > 0) THEN > DELETE FROM peticiones WHERE idpeticion = lr_pet.idpeticion; Hmm, esto debe ser lento como inyección de ulpo. Creo que está mal planteada la forma de hacer esto. En lugar de ir una por una con el cursor viendo el COUNT() de la otra tabla, deberías reformular esto usando un EXISTS. Algo así como delete from peticiones where exists (select 1 from log_peticiones where peticiones.identidad = identidad and tipopeticion = 'PC' and fechapeticion >= ldt_fechanocobrar) > -- Elimino las peticiones repetidas mayores que la petición > que estoy revisando > DELETE FROM peticiones > WHERE isbn = lr_pet.isbn > AND identidad = lr_pet.identidad > AND tipopeticion='PC' > AND fechapeticion >= ldt_fini > AND fechapeticion <= ldt_ffin > AND fechapeticion > lr_pet.fechapeticion; > END IF; Acá algo semejante, creo. -- Alvaro Herrera http://www.flickr.com/photos/alvherre/ Renaming ReiserFS to NinaFS is such an amazingly stupid suggestion, in so many ways, that it ought to qualify for some kind of award. Or perhaps we should name an award after it: the "NinaFS award" for outstanding crassness. (edmundo, http://lwn.net/Articles/203846/) -- TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo