Files
gateway-mnp-dbc/dbcmnpsrc/FE/mnpapp/script/dbUpDate/KitLuglio10/dwhDDL_xml.sql
2024-05-13 12:54:14 +02:00

155 lines
4.0 KiB
SQL

CREATE OR REPLACE FUNCTION dwh.FUN_TIPO_NOTIFICA_ID2DESC (ID IN NUMBER) RETURN VARCHAR2
IS
v_descr VARCHAR2(40);
BEGIN
SELECT DESCR
INTO v_descr
FROM mnp.MNP_LOV
WHERE LOV_NAME='XML_FILE_TYPE'
AND NAME=ID;
RETURN v_descr;
END FUN_TIPO_NOTIFICA_ID2DESC;
/
CREATE OR REPLACE FUNCTION dwh.FUN_EXTRACT_MSISDN (TEXT IN VARCHAR2) RETURN VARCHAR2
IS
v_MSISDN VARCHAR2(15);
v_init NUMBER:=0;
v_end NUMBER:=0;
v_length NUMBER:=0;
BEGIN
v_init := INSTR(TEXT,'<MSISDN>')+8;
v_end := INSTR(TEXT,'</MSISDN>');
v_length := v_end - v_init;
v_MSISDN:=SUBSTR(TEXT,v_init,v_length);
RETURN v_MSISDN;
END FUN_EXTRACT_MSISDN;
/
CREATE MATERIALIZED VIEW dwh.MNP_DW_XML_IN_OUT
TABLESPACE tab_dwh
NOCACHE
NOLOGGING
NOPARALLEL
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
WITH PRIMARY KEY
AS
select b.id_richiesta id_richiesta
,FUN_EXTRACT_MSISDN(b.RICHIESTAXML) MSISDN
,'XML' tipo_file
,FUN_TIPO_NOTIFICA_ID2DESC(a.tipo_file) tipo_notifica
,a.nome_file nome_file
,'Ricevuto' direzione
,a.data_eff data
,to_char(a.data_eff,'dd/mm/yyyy HH24:mi:ss') data_show
,a.destinatario destinatario
,a.mittente mittente
,a.canale_alternativo canale_alternativo
,d.tipo_processo tipo_processo
,a.nome_file nome_file_xml
,c.nome_file nome_file_ack
,0 ord2
from
mnp.MNP_XML_IN a
,mnp.MNP_XML_RICHIESTA_IN b
,mnp.MNP_XML_ACK_OUT c
,mnp.MNP_XML_OUT d
where
a.nome_file=b.nome_file
and b.nome_file=c.nome_file_riferito(+)
and c.nome_file=d.nome_file (+)
union
select
b.id_richiesta id_richiesta
,FUN_EXTRACT_MSISDN(b.RICHIESTAXML) MSISDN
,'ACK' tipo_file
,FUN_TIPO_NOTIFICA_ID2DESC(d.tipo_file) tipo_notifica
,d.nome_file nome_file
,'Ricevuto' direzione
,d.data_eff data
,to_char(d.data_eff,'dd/mm/yyyy HH24:mi:ss') data_show
,d.destinatario destinatario
,d.mittente mittente
,d.canale_alternativo canale_alternativo
,a.tipo_processo tipo_processo
,b.nome_file nome_file_xml
,c.nome_file nome_file_ack
,1 ord2
from
mnp.MNP_XML_OUT a
,mnp.MNP_XML_RICHIESTA_OUT b
,mnp.MNP_XML_ACK_IN c
,mnp.MNP_XML_IN d
where
a.nome_file=b.nome_file
and b.nome_file=c.nome_file_riferito
and c.nome_file=d.nome_file
union
select
b.id_richiesta id_richiesta
,FUN_EXTRACT_MSISDN(b.RICHIESTAXML) MSISDN
,'XML' tipo_file
,FUN_TIPO_NOTIFICA_ID2DESC(a.tipo_file) tipo_notifica
,a.nome_file nome_file
,'Inviato' direzione
,a.data_eff data
,to_char(a.data_eff,'dd/mm/yyyy HH24:mi:ss') data_show
,a.destinatario destinatario
,a.mittente mittente
,a.canale_alternativo canale_alternativo
,a.tipo_processo tipo_processo
,a.nome_file nome_file_xml
,c.nome_file nome_file_ack
,0 ord2
from
mnp.MNP_XML_OUT a
,mnp.MNP_XML_RICHIESTA_OUT b
,mnp.MNP_XML_ACK_IN c
,mnp.MNP_XML_IN d
where
a.nome_file=b.nome_file
and b.nome_file = c.nome_file_riferito (+)
and c.nome_file = d.nome_file (+)
union
select
b.id_richiesta id_richiesta
,FUN_EXTRACT_MSISDN(b.RICHIESTAXML) MSISDN
,'ACK' tipo_file
,FUN_TIPO_NOTIFICA_ID2DESC(d.tipo_file) tipo_notifica
,d.nome_file nome_file
,'Inviato' direzione
,d.data_eff data
,to_char(d.data_eff,'dd/mm/yyyy HH24:mi:ss') data_show
,d.destinatario destinatario
,d.mittente mittente
,d.canale_alternativo canale_alternativo
,d.tipo_processo tipo_processo
,b.nome_file nome_file_rif
,d.nome_file nome_file_ack
,1 ord2
from
mnp.MNP_XML_RICHIESTA_IN b
,mnp.MNP_XML_ACK_OUT c
,mnp.MNP_XML_OUT d
where
b.nome_file=c.nome_file_riferito
and c.nome_file=d.nome_file
;
CREATE INDEX IDX_MNP_DW_XML_IN_OUT_1 ON dwh.MNP_DW_XML_IN_OUT
(id_richiesta)
TABLESPACE TAB_IDX_BIG;
CREATE INDEX IDX_MNP_DW_XML_IN_OUT_2 ON dwh.MNP_DW_XML_IN_OUT
(nome_file,data)
TABLESPACE TAB_IDX_BIG;