105 lines
2.8 KiB
SQL
105 lines
2.8 KiB
SQL
SET serveroutput on
|
|
|
|
DECLARE
|
|
|
|
rs1 varchar2(255);
|
|
rs2 varchar2(255);
|
|
operatore varchar2(15);
|
|
dir_out varchar2(255);
|
|
num NUMBER(15,0);
|
|
totale NUMBER(15,0);
|
|
cod_dig varchar2(1);
|
|
cod varchar2(4);
|
|
file1 UTL_FILE.file_type;
|
|
data_inizio date;
|
|
data_fine date;
|
|
data date;
|
|
di date;
|
|
di date;
|
|
p varchar2(15):='&1';
|
|
|
|
--Numero di richieste ricevute dalla rete di distribuzione nel periodo di riferimento
|
|
CURSOR cur_res(data_inizio date, data_fine date) is
|
|
select olo.desc_olo,nvl(X.num,0)
|
|
from mnp_olo_report olo, (
|
|
select count(distinct msisdn) num , codice_operatore_donating cod
|
|
from mnp_gestione_richiesta_rec
|
|
where codice_operatore_recipient = 'TIMG'
|
|
and dataricezionerichiesta >= trunc(data_inizio)
|
|
and dataricezionerichiesta <= trunc(data_fine)
|
|
group by codice_operatore_donating
|
|
|
|
) X
|
|
where olo.flag_attivo = 1
|
|
and olo.desc_olo <> 'TIMG'
|
|
and olo.desc_olo = x.cod(+)
|
|
order by olo.desc_olo;
|
|
--------------------------------------------
|
|
--INIZIO
|
|
BEGIN
|
|
if (p <> 'nullo')then
|
|
dir_out:='&3';
|
|
|
|
else
|
|
select recipient_out into dir_out
|
|
from mnp_olo_report
|
|
where desc_olo = 'MONIT';
|
|
end if;
|
|
|
|
file1 := UTL_FILE.fopen (dir_out, 'TIM_to_AOM_NumeroRichiesteRicevute_'||to_char(sysdate,'yyyyMMdd')||'.csv', 'w');
|
|
|
|
BEGIN
|
|
if (p <> 'nullo')then
|
|
|
|
data_inizio := to_date('&1','dd/mm/yyyy');
|
|
data_fine := to_date('&2','dd/mm/yyyy');
|
|
else
|
|
if (to_char(sysdate, 'DD')<= '15') then
|
|
data := add_months((trunc(sysdate)), -1);
|
|
data_inizio := to_date('16/'|| to_char(trunc(data), 'mm/yyyy'),'dd/mm/yyyy');
|
|
data_fine := last_day(trunc(data));
|
|
else
|
|
data_inizio := to_date('01/'|| to_char(trunc(sysdate), 'mm/yyyy'), 'dd/mm/yyyy');
|
|
data_fine := to_date('15/'|| to_char(trunc(sysdate), 'mm/yyyy'), 'dd/mm/yyyy');
|
|
end if;
|
|
|
|
end if;
|
|
|
|
UTL_FILE.put_line (file1,'Numero di richieste ricevute dalla rete di distribuzione nel periodo di riferimento');
|
|
UTL_FILE.put_line (file1,' ');
|
|
UTL_FILE.put_line (file1,'Periodo dal '|| trunc(data_inizio) || ' al '|| trunc(data_fine));
|
|
UTL_FILE.put_line (file1,' ');
|
|
UTL_FILE.put_line (file1,'Operatore Recipient TIMG');
|
|
UTL_FILE.put_line (file1,' ');
|
|
|
|
rs1:='';
|
|
rs2:='';
|
|
totale:=0;
|
|
OPEN cur_res(data_inizio, data_fine);
|
|
LOOP
|
|
FETCH cur_res INTO operatore,num;
|
|
EXIT WHEN cur_res%NOTFOUND;
|
|
|
|
rs1 := rs1 || operatore ||';';
|
|
rs2 := rs2 || num ||';';
|
|
totale := totale + num;
|
|
END LOOP;
|
|
CLOSE cur_res;
|
|
|
|
rs1:=rs1 ||'TOTALE'||';';
|
|
rs2:=rs2 || totale ||';';
|
|
UTL_FILE.put_line (file1,rs1);
|
|
UTL_FILE.put_line (file1,rs2);
|
|
UTL_FILE.fflush (file1);
|
|
UTL_FILE.fclose (file1);
|
|
|
|
exception
|
|
when others then
|
|
DBMS_OUTPUT.PUT_LINE(sqlerrm);
|
|
END;
|
|
|
|
end;
|
|
/
|
|
exit;
|
|
|