TECNOLOBO

No recuerdas tu codigo?
Se te olvido como se hace?

Aqui podras guardar lo que necesiten
Y cuando sea necesesario

Creado por julian gomez
iiiiii

Eliminar duplicados Object type table



Descripcion

Configurar Formato de fecha y numero oracle

Nota


Codigo para eliminar de un objeto plsql de tipo tabla los elementos duplicados. para este caso es en base a un contrato
						

Scrippt


PROCEDURE pl_LimpiarTabletytAforados(
    trcDatos IN OUT QB_HIST_PRESTACIONES.tytAforados,
    nmCantCtos OUT number
  )
  AS

    nmIndice1 NUMBER;
    nmIndice2 NUMBER;
    cto_number NUMBER;
    cto_number_enc NUMBER;
    nmEncontrado NUMBER:=0;
    
    nmcantidadCtos NUMBER:=0;
  BEGIN
    nmCantCtos:=0;
    cto_number:=0;
    nmIndice1 := trcDatos.FIRST;
    WHILE nmIndice1 IS NOT NULL LOOP
      cto_number := trcDatos(nmIndice1).nmCto_numero;
      nmEncontrado:=0;

      nmIndice2 := trcDatos.FIRST;
      WHILE nmIndice2 IS NOT NULL LOOP
         
        cto_number_enc := trcDatos(nmIndice2).nmCto_numero;
        
        IF cto_number=cto_number_enc THEN
          nmEncontrado := nmEncontrado+1;
        END IF;
        
        IF nmEncontrado > 1 and (cto_number=cto_number_enc) THEN
          trcDatos.delete(nmIndice1);
        END IF;
        
        nmIndice2 := trcDatos.NEXT(nmIndice2);
      END LOOP;
      
      nmIndice1 := trcDatos.NEXT(nmIndice1);
      
    END LOOP;


    nmIndice1 := trcDatos.FIRST;
    WHILE nmIndice1 IS NOT NULL LOOP
      cto_number_enc := trcDatos(nmIndice1).nmCto_numero;
      
      nmcantidadCtos := nmcantidadCtos+1;
      
      nmIndice1 := trcDatos.NEXT(nmIndice1);
    END LOOP;
    
    nmCantCtos := nmcantidadCtos;
  EXCEPTION
    WHEN OTHERS THEN
      nmCantCtos:=0;
  END;