/*
  Adott két séma:
  SOFOR( rendszam VARCHAR2(8), nev VARCHAR2(20), szuldatum DATE )
  FUVAR( rendszam VARCHAR2(8), t_indul TIMESTAMP, t_erkezik TIMESTAMP, szuldatum DATE);
  
  A program összegyűjti egy gyűjtőtáblában a fuvarok számát hónapokra lebontva az idei évben.

*/
SET SERVEROUTPUT ON
DECLARE 

  TYPE gyujtoTipus IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
  gyujto gyujtoTipus;
  ind BINARY_INTEGER;

BEGIN
  
  -- tabla feltoltese
  FOR honap IN 1..12 
  LOOP 
    SELECT COUNT(*) INTO gyujto(honap)
    FROM FUVAR 
    WHERE EXTRACT(YEAR FROM t_erkeziK)=2014 AND EXTRACT(MONTH FROM t_erkezik)=honap;
  END LOOP;
  
  -- tabla elemeinek kiiratasa
  ind := gyujto.FIRST;
  LOOP
    DBMS_OUTPUT.PUT_LINE('Hónap: ' || ind || '  Fuvarok száma: ' || gyujto(ind) );
    EXIT WHEN gyujto.EXISTS(ind) = false;
    ind:=gyujto.NEXT(ind);
  END LOOP;
  
END;