miércoles, 29 de enero de 2014

incidencias por minuto ex2

/*
 *
 */

SET SERVEROUTPUT ON
CREATE OR REPLACE TYPE array_integer IS TABLE OF INTEGER;

CREATE OR REPLACE FUNCTION incidencias_por_minuto RETURN ARRAY_INTEGER IS

   l_inc_by_min ARRAY_INTEGER;
 
BEGIN
  l_inc_by_min := array_integer();

  FOR I IN 1 .. 100 LOOP
    l_inc_by_min.EXTEND;
    l_inc_by_min(I) := 0;
  END LOOP;

  FOR I IN (SELECT * FROM incidencias) LOOP
    l_inc_by_min(I.minuto) := l_inc_by_min(I.minuto) + 1;
  END LOOP;

  RETURN l_inc_by_min;

END incidencias_por_minuto;


/**Para mostrarlo **/ DECLARE
   l_inc_by_min ARRAY_INTEGER;
BEGIN
  l_inc_by_min := incidencias_por_minuto();
  FOR I IN l_inc_by_min.FIRST .. l_inc_by_min.LAST LOOP
    IF l_inc_by_min(I) <> 0 THEN
      DBMS_OUTPUT.PUT_LINE('Minuto: ' || I || ' Numero de incidencias: ' || l_inc_by_min(I));
    END IF;
  END LOOP;
END;

No hay comentarios:

Publicar un comentario