First Commit - Source Code from Reply
This commit is contained in:
136
dbcmnpsrc/FE/mnpapp/script/procedure/mnp/CALCOLA_SXMLOU.prc
Normal file
136
dbcmnpsrc/FE/mnpapp/script/procedure/mnp/CALCOLA_SXMLOU.prc
Normal 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;
|
||||
/
|
||||
Reference in New Issue
Block a user