First Commit - Source Code from Reply

This commit is contained in:
vincenzofariello
2024-05-13 12:54:14 +02:00
parent 73e32a5020
commit a15aee1f08
11184 changed files with 1065913 additions and 0 deletions

View File

@@ -0,0 +1,136 @@
CREATE OR REPLACE PROCEDURE calcola_sxmlou (
nomeindicatore IN VARCHAR2,
starthour IN NUMBER,
endhour IN NUMBER,
frequenza IN VARCHAR2,
nomefile IN VARCHAR2,
partizione IN VARCHAR2,
hostaria IN VARCHAR2
)
IS
data_val DATE;
file1 UTL_FILE.file_type;
TYPE rec_valore_type IS RECORD (
desc_olo mnp_olo.desc_olo%TYPE,
tipo_processo_descr mnp_lov.descr%TYPE,
tipo_file_descr mnp_lov.descr%TYPE,
valore NUMBER
);
TYPE cur_valore_type IS REF CURSOR;
cur_valore cur_valore_type;
rec_valore rec_valore_type;
sql_stmt VARCHAR2 (2000);
BEGIN
sql_stmt :=
' SELECT e.desc_olo, e.tipo_processo_descr, e.tipo_file_descr,'
|| ' COUNT (nome_file) valore'
|| ' FROM mnp_xml_out PARTITION ('
|| partizione
|| ') a,'
|| ' (SELECT b.NAME tipo_processo, b.descr tipo_processo_descr,'
|| ' c.NAME tipo_file, c.descr tipo_file_descr, d.desc_olo'
|| ' FROM mnp_lov b, mnp_lov c, mnp_olo d'
|| ' WHERE (d.flag_terze_parti = 1 OR d.desc_olo = ''NPTS'')'
|| ' AND b.lov_name = ''PROCESS'''
|| ' AND c.lov_name = ''XML_FILE_TYPE'''
|| ' AND ((d.flag_terze_parti = 1'
|| ' AND (b.NAME, c.NAME) IN'
|| ' ((''K'', ''7''),'
|| ' (''D'', ''2''),'
|| ' (''D'', ''5''),'
|| ' (''D'', ''6''),'
|| ' (''R'', ''1''),'
|| ' (''R'', ''3''),'
|| ' (''R'', ''9''),'
|| ' (''P'', ''6'')) '
|| ' ) '
|| ' OR (d.desc_olo = ''NPTS'''
|| ' AND (b.NAME, c.NAME) IN'
|| ' ((''K'', ''7''),'
|| ' (''D'', ''6''),'
|| ' (''R'', ''3''),'
|| ' (''R'', ''6''),'
|| ' (''P'', ''6'')) '
|| ' )'
|| ' )) e '
|| ' WHERE TRUNC (SYSDATE) + :starthour / 24 < a.data_invio(+)'
|| ' AND TRUNC (SYSDATE) + :endhour / 24 >= a.data_invio(+)'
|| ' AND e.desc_olo = a.destinatario(+)'
|| ' AND e.tipo_file = a.tipo_file(+)'
|| ' AND e.tipo_processo = a.tipo_processo(+)'
|| ' GROUP BY e.desc_olo, e.tipo_processo_descr, e.tipo_file_descr';
DBMS_OUTPUT.put_line ( 'apro il file '
|| 'MNP'
|| '.'
|| TO_CHAR (SYSDATE, 'yyyyMMdd')
);
file1 :=
UTL_FILE.fopen (nomefile,
'MNP' || '.' || TO_CHAR (SYSDATE, 'yyyyMMdd'),
'a'
);
OPEN cur_valore
FOR sql_stmt USING starthour, endhour;
data_val := SYSDATE;
LOOP
FETCH cur_valore
INTO rec_valore;
EXIT WHEN cur_valore%NOTFOUND;
UTL_FILE.put_line (file1,
nomeindicatore
|| ';'
|| rec_valore.desc_olo
|| '-:-'
|| rec_valore.tipo_processo_descr
|| '-:-'
|| rec_valore.tipo_file_descr
|| ';'
|| rec_valore.valore
|| ';'
|| frequenza
|| ';'
|| hostaria
|| ';'
|| TO_CHAR (data_val, 'yyyymmdd')
|| ';'
|| TO_CHAR (data_val, 'hh24:mi:ss')
|| ';'
|| TO_CHAR (SYSDATE, 'yyyymmdd')
|| ';'
|| TO_CHAR (SYSDATE, 'hh24:mi:ss')
|| ';'
|| '0'
|| ';'
|| rec_valore.desc_olo
|| '-:-'
|| rec_valore.tipo_processo_descr
|| '-:-'
|| rec_valore.tipo_file_descr
|| ';;'
);
END LOOP;
CLOSE cur_valore;
UTL_FILE.fflush (file1);
UTL_FILE.fclose (file1);
DBMS_OUTPUT.put_line ( 'chiudo il file '
|| 'MNP'
|| '.'
|| TO_CHAR (SYSDATE, 'yyyyMMdd')
);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
/