First Commit - Source Code from Reply
This commit is contained in:
@@ -0,0 +1,222 @@
|
||||
SET serveroutput on
|
||||
|
||||
DECLARE
|
||||
rs1 VARCHAR2 (255);
|
||||
rs2 VARCHAR2 (255);
|
||||
operatore VARCHAR2 (15);
|
||||
operatore_res VARCHAR2 (15);
|
||||
operatore_ VARCHAR2 (15);
|
||||
dir_out VARCHAR2 (255);
|
||||
num NUMBER (15, 0);
|
||||
totale NUMBER (15, 0);
|
||||
cod_ope VARCHAR2 (15);
|
||||
cod VARCHAR2 (4);
|
||||
file1 UTL_FILE.file_type;
|
||||
data_inizio DATE;
|
||||
data_fine DATE;
|
||||
DATA DATE;
|
||||
di DATE;
|
||||
p VARCHAR2 (15) := '&1';
|
||||
cod_olo NUMBER (5);
|
||||
|
||||
--cursore degli operatori
|
||||
CURSOR cur_operatori
|
||||
IS
|
||||
SELECT desc_olo, cod_olo
|
||||
FROM mnp_olo_report
|
||||
WHERE flag_attivo = 1 AND desc_olo NOT IN ('TIMT', 'TIMG')
|
||||
ORDER BY desc_olo;
|
||||
|
||||
--Numero di attivazioni non effettuate da un operatore in qualita di terza parte
|
||||
CURSOR cur_res (
|
||||
data_inizio DATE,
|
||||
data_fine DATE,
|
||||
cod_olo NUMBER,
|
||||
operatore VARCHAR2
|
||||
)
|
||||
IS
|
||||
SELECT olo.desc_olo, NVL (SUM (x.num), 0)
|
||||
FROM mnp_olo_report olo,
|
||||
(SELECT COUNT (r.id_richiesta) num,
|
||||
codice_operatore_donating cod
|
||||
FROM mnp_gestione_richiesta_rec r
|
||||
WHERE r.data_cut_over_calc >= TRUNC (data_inizio)
|
||||
AND r.data_cut_over_calc <= TRUNC (data_fine)
|
||||
AND r.espletamentoterzeparti LIKE '%' || cod_olo || '%'
|
||||
AND r.codice_operatore_donating != operatore
|
||||
AND r.codice_operatore_donating = 'TIMT'
|
||||
AND r.stato IN (8, 10, 11)
|
||||
GROUP BY codice_operatore_donating
|
||||
UNION ALL
|
||||
SELECT COUNT (r.id_richiesta) num,
|
||||
codice_operatore_donating cod
|
||||
FROM mnp_gestione_richiesta_rec r
|
||||
WHERE r.data_cut_over_aom >= TRUNC (data_inizio)
|
||||
AND r.data_cut_over_aom <= TRUNC (data_fine)
|
||||
AND r.espletamentoterzeparti LIKE '%' || cod_olo || '%'
|
||||
AND r.codice_operatore_donating != operatore
|
||||
AND r.codice_operatore_donating != 'TIMT'
|
||||
AND r.stato IN (8, 10, 11)
|
||||
GROUP BY codice_operatore_donating
|
||||
UNION ALL
|
||||
SELECT COUNT (r.id_richiesta) num,
|
||||
codice_operatore_donating cod
|
||||
FROM mnp_gestione_richiesta_rec r
|
||||
WHERE r.data_cut_over_calc >= TRUNC (data_inizio)
|
||||
AND r.data_cut_over_calc <= TRUNC (data_fine)
|
||||
AND r.codice_operatore_donating != operatore
|
||||
AND r.codice_operatore_donating = 'TIMT'
|
||||
AND r.stato IN (8, 10, 11, 12)
|
||||
AND EXISTS (
|
||||
SELECT xri.id_richiesta
|
||||
FROM mnp_xml_in xi, mnp_xml_richiesta_in xri
|
||||
WHERE xi.tipo_file = 6
|
||||
AND xi.mittente = operatore
|
||||
AND xi.nome_file = xri.nome_file
|
||||
AND xri.id_richiesta = r.id_richiesta
|
||||
AND xri.richiestaxml LIKE
|
||||
'%<STATO_RICHIESTA_NOTIFICA>4%'
|
||||
AND TRUNC (xi.data_eff) > r.data_cut_over_calc
|
||||
MINUS
|
||||
SELECT xri.id_richiesta
|
||||
FROM mnp_xml_in xi, mnp_xml_richiesta_in xri
|
||||
WHERE xi.tipo_file = 6
|
||||
AND xi.mittente = operatore
|
||||
AND xi.nome_file = xri.nome_file
|
||||
AND xri.id_richiesta = r.id_richiesta
|
||||
AND xri.richiestaxml LIKE
|
||||
'%<STATO_RICHIESTA_NOTIFICA>4%'
|
||||
AND TRUNC (xi.data_eff) <= r.data_cut_over_calc)
|
||||
GROUP BY codice_operatore_donating
|
||||
UNION ALL
|
||||
SELECT COUNT (r.id_richiesta) num,
|
||||
codice_operatore_donating cod
|
||||
FROM mnp_gestione_richiesta_rec r
|
||||
WHERE r.data_cut_over_aom >= TRUNC (data_inizio)
|
||||
AND r.data_cut_over_aom <= TRUNC (data_fine)
|
||||
AND r.codice_operatore_donating != operatore
|
||||
AND r.codice_operatore_donating != 'TIMT'
|
||||
AND r.stato IN (8, 10, 11, 12)
|
||||
AND EXISTS (
|
||||
SELECT xri.id_richiesta
|
||||
FROM mnp_xml_in xi, mnp_xml_richiesta_in xri
|
||||
WHERE xi.tipo_file = 6
|
||||
AND xi.mittente = operatore
|
||||
AND xi.nome_file = xri.nome_file
|
||||
AND xri.id_richiesta = r.id_richiesta
|
||||
AND xri.richiestaxml LIKE
|
||||
'%<STATO_RICHIESTA_NOTIFICA>4%'
|
||||
AND TRUNC (xi.data_eff) > r.data_cut_over_aom
|
||||
MINUS
|
||||
SELECT xri.id_richiesta
|
||||
FROM mnp_xml_in xi, mnp_xml_richiesta_in xri
|
||||
WHERE xi.tipo_file = 6
|
||||
AND xi.mittente = operatore
|
||||
AND xi.nome_file = xri.nome_file
|
||||
AND xri.id_richiesta = r.id_richiesta
|
||||
AND xri.richiestaxml LIKE
|
||||
'%<STATO_RICHIESTA_NOTIFICA>4%'
|
||||
AND TRUNC (xi.data_eff) <= r.data_cut_over_aom)
|
||||
GROUP BY codice_operatore_donating) x
|
||||
WHERE olo.flag_attivo = 1 AND olo.desc_olo = x.cod(+)
|
||||
GROUP BY olo.desc_olo
|
||||
ORDER BY desc_olo;
|
||||
--INIZIO
|
||||
BEGIN
|
||||
IF (p <> 'nullo')
|
||||
THEN
|
||||
data_inizio := TO_DATE ('&1', 'dd/mm/yyyy');
|
||||
data_fine := TO_DATE ('&2', 'dd/mm/yyyy');
|
||||
dir_out := '&3';
|
||||
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;
|
||||
|
||||
SELECT donor_out
|
||||
INTO dir_out
|
||||
FROM mnp_olo_report
|
||||
WHERE desc_olo = 'MONIT';
|
||||
END IF;
|
||||
|
||||
BEGIN
|
||||
OPEN cur_operatori;
|
||||
|
||||
LOOP
|
||||
FETCH cur_operatori
|
||||
INTO operatore, cod_olo;
|
||||
|
||||
EXIT WHEN cur_operatori%NOTFOUND;
|
||||
totale := 0;
|
||||
file1 :=
|
||||
UTL_FILE.fopen (dir_out,
|
||||
'TIMG_to_'
|
||||
|| UPPER (operatore)
|
||||
|| '_AttivazioneNonEffet_'
|
||||
|| TO_CHAR (SYSDATE, 'yyyyMMdd')
|
||||
|| '.csv',
|
||||
'w'
|
||||
);
|
||||
UTL_FILE.put_line
|
||||
(file1,
|
||||
'Numero di attivazioni non effettuate da '
|
||||
|| UPPER (operatore)
|
||||
|| ' in qualità di operatore terza parte il giorno di cut_over previsto'
|
||||
);
|
||||
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 OLO terza Parte: ' || UPPER (operatore)
|
||||
);
|
||||
UTL_FILE.put_line (file1, ' ');
|
||||
UTL_FILE.put_line (file1, ';TIMG ');
|
||||
|
||||
OPEN cur_res (data_inizio, data_fine, cod_olo, operatore);
|
||||
|
||||
LOOP
|
||||
FETCH cur_res
|
||||
INTO operatore_, num;
|
||||
|
||||
EXIT WHEN cur_res%NOTFOUND;
|
||||
UTL_FILE.put_line (file1, operatore_ || ';' || num);
|
||||
totale := totale + num;
|
||||
END LOOP;
|
||||
|
||||
CLOSE cur_res;
|
||||
|
||||
UTL_FILE.put_line (file1, 'Totale' || ';' || totale);
|
||||
END LOOP;
|
||||
|
||||
UTL_FILE.fflush (file1);
|
||||
UTL_FILE.fclose (file1);
|
||||
|
||||
CLOSE cur_operatori;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
DBMS_OUTPUT.put_line (SQLERRM);
|
||||
END;
|
||||
END;
|
||||
/
|
||||
|
||||
EXIT;
|
||||
Reference in New Issue
Block a user