First Commit - Source Code from Reply
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
2018 C05 MNP_RU_524 evoluzione di DB_Portati
|
||||
Contiene gli script per l'estrazione delle linee soggette a porting,
|
||||
necessarie per l’obbligo regolamentare Delibera AGCOM 147/11/CIR
|
||||
che impone di fornire i dati all’operatore che ne faccia richiesta
|
||||
per consentire ad un operatore entrante di allineare correttamente
|
||||
la propria rete allo stato generato da tutte le portabilita'
|
||||
avvenute nel tempo dall'inizio della normativa di MNP.
|
||||
I principali aggiornamenti rispetto a DB_Portati sono:
|
||||
- aggiunta delle tabelle di svecchiamento _HIST alla base di estrazione;
|
||||
- aggiunta di indici alle tabelle di svecchiamento per velocizzare l'estrazione;
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/ksh
|
||||
THIS_PATH=`dirname $0`
|
||||
. $THIS_PATH/../setEnv.sh
|
||||
|
||||
$THIS_PATH/../TestNodo.sh
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
if [ "$1" = "" ] || [ "$2" = "" ] || [ "$3" = "" ]; then
|
||||
echo "Utilizzo: ${0} data_inizio data_fine numero_righe"
|
||||
echo " le date vanno passate in formato DDMMYYYY "
|
||||
echo " numero_righe indica quante righe al massimo estrarre nel file"
|
||||
exit -1
|
||||
fi
|
||||
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runDbc2ILIAD.sql $1 $2 $3 >$THIS_PATH/runDbc2ILIAD.log
|
||||
fi
|
||||
@@ -0,0 +1,33 @@
|
||||
set heading off
|
||||
set pagesize 0
|
||||
set linesize 200
|
||||
set trimspool on
|
||||
set feedback off
|
||||
set verify off
|
||||
set echo off
|
||||
set termout off
|
||||
set time off
|
||||
set timing off
|
||||
alter session set nls_territory='italy';
|
||||
UPDATE MNP_DBP2DBCFX D
|
||||
SET D.FLAG_LAVORATO=2 --in lavorazione
|
||||
WHERE D.FLAG_LAVORATO=0
|
||||
AND D.DATA_CUT_OVER BETWEEN TO_DATE('&1','DDMMYYYY') AND TO_DATE('&2','DDMMYYYY')
|
||||
AND ROWNUM < &3;
|
||||
spool mnp_dbp2ILIAD.csv
|
||||
SELECT ID_RICHIESTA
|
||||
||';'||MSISDN
|
||||
||';'||CODICE_OPERATORE_RECIPIENT
|
||||
||';'||NVL(ROUTING_NUMBER,' ')
|
||||
||';'||TO_CHAR(DATA_CUT_OVER,'ddmmyyyy hh24miss')
|
||||
||';'||TO_CHAR(SYSDATE,'ddmmyyyy hh24miss')
|
||||
||';'
|
||||
FROM MNP_DBP2DBCFX D
|
||||
WHERE D.FLAG_LAVORATO=2;
|
||||
spool off
|
||||
UPDATE MNP_DBP2DBCFX D
|
||||
SET D.FLAG_LAVORATO=1
|
||||
WHERE D.FLAG_LAVORATO=2;
|
||||
COMMIT;
|
||||
/
|
||||
EXIT
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/ksh
|
||||
THIS_PATH=`dirname $0`
|
||||
. $THIS_PATH/../setEnv.sh
|
||||
|
||||
$THIS_PATH/../TestNodo.sh
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
if [ "$1" = "" ] || [ "$2" = "" ]; then
|
||||
echo "Utilizzo: ${0} data_inizio data_fine "
|
||||
echo " le date vanno passate in formato DDMMYYYY "
|
||||
exit -1
|
||||
fi
|
||||
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runRichiestaCessPort_Del147.sql $1 $2 >$THIS_PATH/runRichiestaCessPort.log
|
||||
fi
|
||||
@@ -0,0 +1,13 @@
|
||||
DECLARE
|
||||
DATA_INIZIO DATE;
|
||||
DATA_FINE DATE;
|
||||
|
||||
BEGIN
|
||||
DATA_INIZIO := TO_DATE('&1','DDMMYYYY');
|
||||
DATA_FINE := TO_DATE('&2','DDMMYYYY');
|
||||
|
||||
PKG_DBP.ESTR_RICH_CESS_PORT ( DATA_INIZIO, DATA_FINE );
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
exit
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/ksh
|
||||
THIS_PATH=`dirname $0`
|
||||
. $THIS_PATH/../setEnv.sh
|
||||
|
||||
$THIS_PATH/../TestNodo.sh
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
if [ "$1" = "" ] || [ "$2" = "" ]; then
|
||||
echo "Utilizzo: ${0} data_inizio data_fine "
|
||||
echo " le date vanno passate in formato DDMMYYYY "
|
||||
exit -1
|
||||
fi
|
||||
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runRichiestaCess_Del147.sql $1 $2 >$THIS_PATH/runRichiestaCess.log
|
||||
fi
|
||||
@@ -0,0 +1,13 @@
|
||||
DECLARE
|
||||
DATA_INIZIO DATE;
|
||||
DATA_FINE DATE;
|
||||
|
||||
BEGIN
|
||||
DATA_INIZIO := TO_DATE('&1','DDMMYYYY');
|
||||
DATA_FINE := TO_DATE('&2','DDMMYYYY');
|
||||
|
||||
PKG_DBP.ESTR_RICHIESTA_CESS ( DATA_INIZIO, DATA_FINE );
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
exit
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/ksh
|
||||
THIS_PATH=`dirname $0`
|
||||
. $THIS_PATH/../setEnv.sh
|
||||
|
||||
$THIS_PATH/../TestNodo.sh
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
if [ "$1" = "" ] || [ "$2" = "" ]; then
|
||||
echo "Utilizzo: ${0} data_inizio data_fine "
|
||||
echo " le date vanno passate in formato DDMMYYYY "
|
||||
exit -1
|
||||
fi
|
||||
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runRichiestaPorting_Del147.sql $1 $2 >$THIS_PATH/runRichiestaPorting.log
|
||||
fi
|
||||
@@ -0,0 +1,19 @@
|
||||
-- 2018 C05 MNP_RU_524 Del.147
|
||||
-- Del.147 full export of porting history to OLOs
|
||||
-- Extend PKG_DBP to include relevant _HIST tables
|
||||
DECLARE
|
||||
DATA_INIZIO DATE;
|
||||
DATA_FINE DATE;
|
||||
|
||||
BEGIN
|
||||
DATA_INIZIO := TO_DATE('&1','DDMMYYYY');
|
||||
DATA_FINE := TO_DATE('&2','DDMMYYYY');
|
||||
|
||||
PKG_DBP.ESTR_RICHIESTA_PORTING_HIST ( DATA_INIZIO, DATA_FINE );
|
||||
COMMIT;
|
||||
|
||||
PKG_DBP.ESTR_RICHIESTA_PORTING ( DATA_INIZIO, DATA_FINE );
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
exit
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/ksh
|
||||
THIS_PATH=`dirname $0`
|
||||
. $THIS_PATH/../setEnv.sh
|
||||
|
||||
$THIS_PATH/../TestNodo.sh
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
if [ "$1" = "" ] || [ "$2" = "" ]; then
|
||||
echo "Utilizzo: ${0} data_inizio data_fine "
|
||||
echo " le date vanno passate in formato DDMMYYYY "
|
||||
exit -1
|
||||
fi
|
||||
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runRichiestaRec_Del147.sql $1 $2 >$THIS_PATH/runRichiestaRec.log
|
||||
fi
|
||||
@@ -0,0 +1,19 @@
|
||||
-- 2018 C05 MNP_RU_524 Del.147
|
||||
-- Del.147 full export of porting history to OLOs
|
||||
-- Extend PKG_DBP to include relevant _HIST tables
|
||||
DECLARE
|
||||
DATA_INIZIO DATE;
|
||||
DATA_FINE DATE;
|
||||
|
||||
BEGIN
|
||||
DATA_INIZIO := TO_DATE('&1','DDMMYYYY');
|
||||
DATA_FINE := TO_DATE('&2','DDMMYYYY');
|
||||
|
||||
PKG_DBP.ESTR_RICHIESTA_REC_HIST ( DATA_INIZIO, DATA_FINE );
|
||||
COMMIT;
|
||||
|
||||
PKG_DBP.ESTR_RICHIESTA_REC ( DATA_INIZIO, DATA_FINE );
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
exit
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/ksh
|
||||
THIS_PATH=`dirname $0`
|
||||
. $THIS_PATH/../setEnv.sh
|
||||
|
||||
$THIS_PATH/../TestNodo.sh
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
if [ "$1" = "" ] || [ "$2" = "" ]; then
|
||||
echo "Utilizzo: ${0} data_inizio data_fine "
|
||||
echo " le date vanno passate in formato DDMMYYYY "
|
||||
exit -1
|
||||
fi
|
||||
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runRichiesta_Del147.sql $1 $2 >$THIS_PATH/runRichiesta.log
|
||||
fi
|
||||
@@ -0,0 +1,19 @@
|
||||
-- 2018 C05 MNP_RU_524 Del.147
|
||||
-- Del.147 full export of porting history to OLOs
|
||||
-- Extend PKG_DBP to include relevant _HIST tables
|
||||
DECLARE
|
||||
DATA_INIZIO DATE;
|
||||
DATA_FINE DATE;
|
||||
|
||||
BEGIN
|
||||
DATA_INIZIO := TO_DATE('&1','DDMMYYYY');
|
||||
DATA_FINE := TO_DATE('&2','DDMMYYYY');
|
||||
|
||||
PKG_DBP.ESTR_RICHIESTA_HIST ( DATA_INIZIO, DATA_FINE );
|
||||
COMMIT;
|
||||
|
||||
PKG_DBP.ESTR_RICHIESTA ( DATA_INIZIO, DATA_FINE );
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
exit
|
||||
@@ -0,0 +1,32 @@
|
||||
-- Execute as user MNP
|
||||
-- 2018 C05 MNP_RU_524
|
||||
-- Del.147 full export of porting history to OLOs
|
||||
-- DDL 1/3
|
||||
-- Create indexes on relevant fields of HIST_ tables
|
||||
-- for use by PKG_DBP
|
||||
|
||||
-- SOS
|
||||
|
||||
CREATE INDEX IDX_HIST_GEST_RICH_DCO
|
||||
ON HIST_GESTIONE_RICHIESTA (DATA_CUT_OVER)
|
||||
LOGGING TABLESPACE TAB_IDX_MEDIUM
|
||||
;
|
||||
|
||||
CREATE INDEX IDX_HIST_GEST_RICH_STATO
|
||||
ON HIST_GESTIONE_RICHIESTA (STATO)
|
||||
LOGGING TABLESPACE TAB_IDX_MEDIUM
|
||||
;
|
||||
|
||||
CREATE INDEX IDX_HIST_GEST_RICH_REC_DCO
|
||||
ON HIST_GESTIONE_RICHIESTA_REC (DATA_CUT_OVER)
|
||||
LOGGING TABLESPACE TAB_IDX_MEDIUM
|
||||
;
|
||||
|
||||
CREATE INDEX IDX_HIST_GEST_RICH_PORT_DCO
|
||||
ON HIST_GESTIONE_RICHIESTAPORTING (DATA_CUT_OVER)
|
||||
LOGGING TABLESPACE TAB_IDX_MEDIUM
|
||||
;
|
||||
|
||||
-- non mettere la / finale altrimenti ripete la creazione oggetti
|
||||
--/
|
||||
-- EOS
|
||||
@@ -0,0 +1,27 @@
|
||||
-- Execute as user MNP
|
||||
-- 2018 C05 MNP_RU_524
|
||||
-- Del.147 full export of porting history to OLOs
|
||||
-- Create indexes on relevant fields of LIVE tables
|
||||
-- DDL 2/3
|
||||
-- for use by PKG_DBP
|
||||
|
||||
-- SOS
|
||||
|
||||
CREATE INDEX IDX_MNP_GEST_RICH_DCO
|
||||
ON MNP_GESTIONE_RICHIESTA (DATA_CUT_OVER)
|
||||
TABLESPACE TAB_IDX_HUGE_2_1
|
||||
;
|
||||
|
||||
CREATE INDEX IDX_MNP_GEST_RICH_STATO
|
||||
ON MNP_GESTIONE_RICHIESTA (STATO)
|
||||
TABLESPACE TAB_IDX_HUGE_2_1
|
||||
;
|
||||
|
||||
CREATE INDEX IDX_MNP_GEST_RICH_REC_DCO
|
||||
ON MNP_GESTIONE_RICHIESTA_REC (DATA_CUT_OVER)
|
||||
TABLESPACE TAB_IDX_HUGE_2_1
|
||||
;
|
||||
|
||||
-- non mettere la / finale altrimenti ripete la creazione oggetti
|
||||
--/
|
||||
-- EOS
|
||||
@@ -0,0 +1,542 @@
|
||||
-- Execute as user MNP
|
||||
-- 2018 C05 MNP_RU_524
|
||||
-- Del.147 full export of porting history to OLOs
|
||||
-- DDL 3/3
|
||||
-- Extend PKG_DBP to include relevant _HIST tables
|
||||
-- Per le CESSAZIONI riportare come CODICE_OPERATORE_RECIPIENT
|
||||
-- l'OLO proprietario originale del DN (come da prefisso)
|
||||
|
||||
CREATE OR REPLACE PACKAGE PKG_DBP AS
|
||||
|
||||
PROCEDURE ESTR_RICHIESTA (in_data_inizio IN DATE, in_data_fine IN DATE);
|
||||
PROCEDURE ESTR_RICHIESTA_REC (in_data_inizio IN DATE, in_data_fine IN DATE);
|
||||
PROCEDURE ESTR_RICHIESTA_PORTING (in_data_inizio IN DATE, in_data_fine IN DATE);
|
||||
PROCEDURE ESTR_RICH_CESS_PORT (in_data_inizio IN DATE, in_data_fine IN DATE);
|
||||
PROCEDURE ESTR_RICHIESTA_CESS (in_data_inizio IN DATE, in_data_fine IN DATE);
|
||||
|
||||
PROCEDURE ESTR_RICHIESTA_HIST (in_data_inizio IN DATE, in_data_fine IN DATE);
|
||||
PROCEDURE ESTR_RICHIESTA_REC_HIST (in_data_inizio IN DATE, in_data_fine IN DATE);
|
||||
PROCEDURE ESTR_RICHIESTA_PORTING_HIST(in_data_inizio IN DATE, in_data_fine IN DATE);
|
||||
|
||||
END PKG_DBP;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PACKAGE BODY PKG_DBP AS
|
||||
|
||||
-- ===============================================================================
|
||||
-- 2018 C05 MNP_RU_524 Del.147 Procedura #1/8
|
||||
-- PROCESSO DONOR STANDARD/MVNO/PrjHoc
|
||||
-- Utilizza MERGE invece di LOOP on CURSOR
|
||||
PROCEDURE ESTR_RICHIESTA(in_data_inizio IN DATE, in_data_fine IN DATE) IS
|
||||
BEGIN
|
||||
MERGE INTO MNP_DBP2DBCFX m_tgt
|
||||
USING (
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, FLAG_LAVORATO FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT /*+ FULL(MGR) PARALLEL(5)*/ MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER_CALC AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 0 AS FLAG_LAVORATO
|
||||
FROM MNP_GESTIONE_RICHIESTA MGR
|
||||
WHERE MGR.MSISDN IS NOT NULL
|
||||
AND MGR.DATA_CUT_OVER_CALC BETWEEN in_data_inizio AND in_data_fine
|
||||
AND STATO IN(
|
||||
7 --VALIDATAOK
|
||||
, 9 --ACCETTATA
|
||||
, 14 --INCESSAZIONE
|
||||
, 15 --CESSATA
|
||||
, 16 --ESPLETATA
|
||||
, 99 --BLOCCATA
|
||||
)
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
) m_cur
|
||||
ON (m_cur.MSISDN = m_tgt.MSISDN)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
ID_RICHIESTA = m_cur.ID_RICHIESTA
|
||||
, CODICE_OPERATORE_RECIPIENT = m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER = m_cur.ROUTING_NUMBER
|
||||
, DATA_CUT_OVER = m_cur.DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE = m_cur.DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO = m_cur.FLAG_LAVORATO
|
||||
WHERE m_cur.DATA_CUT_OVER > m_tgt.DATA_CUT_OVER
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
ID_RICHIESTA
|
||||
, MSISDN
|
||||
, CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER
|
||||
, DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO
|
||||
) VALUES (
|
||||
m_cur.ID_RICHIESTA
|
||||
, m_cur.MSISDN
|
||||
, m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, m_cur.ROUTING_NUMBER
|
||||
, m_cur.DATA_CUT_OVER
|
||||
, m_cur.DATA_ESTRAZIONE
|
||||
, m_cur.FLAG_LAVORATO
|
||||
);
|
||||
COMMIT;
|
||||
RETURN;
|
||||
END ESTR_RICHIESTA;
|
||||
|
||||
-- ===============================================================================
|
||||
-- 2018 C05 MNP_RU_524 Del.147 Procedura #2/8
|
||||
-- PROCESSO RECIPIENT STANDARD/MVNO/PrjHoc
|
||||
-- Utilizza MERGE invece di LOOP on CURSOR
|
||||
PROCEDURE ESTR_RICHIESTA_REC(in_data_inizio IN DATE, in_data_fine IN DATE) IS
|
||||
BEGIN
|
||||
MERGE INTO MNP_DBP2DBCFX m_tgt
|
||||
USING (
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, FLAG_LAVORATO FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT /*+ FULL(MGR) PARALLEL(5)*/ MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER_AOM AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 0 AS FLAG_LAVORATO
|
||||
FROM MNP_GESTIONE_RICHIESTA_REC MGR
|
||||
WHERE MGR.MSISDN IS NOT NULL
|
||||
AND MGR.DATA_CUT_OVER_AOM BETWEEN in_data_inizio AND in_data_fine
|
||||
AND STATO IN(
|
||||
8 --VALIDATA
|
||||
, 10 --ACCETTATA
|
||||
, 11 --ATTESAEVASIONE
|
||||
, 12 --EVASA
|
||||
)
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
) m_cur
|
||||
ON (m_cur.MSISDN = m_tgt.MSISDN)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
ID_RICHIESTA = m_cur.ID_RICHIESTA
|
||||
, CODICE_OPERATORE_RECIPIENT = m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER = m_cur.ROUTING_NUMBER
|
||||
, DATA_CUT_OVER = m_cur.DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE = m_cur.DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO = m_cur.FLAG_LAVORATO
|
||||
WHERE m_cur.DATA_CUT_OVER > m_tgt.DATA_CUT_OVER
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
ID_RICHIESTA
|
||||
, MSISDN
|
||||
, CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER
|
||||
, DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO
|
||||
) VALUES (
|
||||
m_cur.ID_RICHIESTA
|
||||
, m_cur.MSISDN
|
||||
, m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, m_cur.ROUTING_NUMBER
|
||||
, m_cur.DATA_CUT_OVER
|
||||
, m_cur.DATA_ESTRAZIONE
|
||||
, m_cur.FLAG_LAVORATO
|
||||
);
|
||||
COMMIT;
|
||||
RETURN;
|
||||
END ESTR_RICHIESTA_REC;
|
||||
|
||||
-- ===============================================================================
|
||||
-- 2018 C05 MNP_RU_524 Del.147 Procedura #3/8
|
||||
-- PROCESSO PORTING TERZE PARTI
|
||||
-- Utilizza MERGE invece di LOOP on CURSOR
|
||||
PROCEDURE ESTR_RICHIESTA_PORTING(in_data_inizio IN DATE, in_data_fine IN DATE) IS
|
||||
BEGIN
|
||||
MERGE INTO MNP_DBP2DBCFX m_tgt
|
||||
USING (
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, FLAG_LAVORATO FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 0 AS FLAG_LAVORATO
|
||||
FROM MNP_GESTIONE_RICHIESTA_PORTING MGR
|
||||
WHERE MGR.MSISDN IS NOT NULL
|
||||
AND MGR.DATA_CUT_OVER BETWEEN in_data_inizio AND in_data_fine
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
) m_cur
|
||||
ON (m_cur.MSISDN = m_tgt.MSISDN)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
ID_RICHIESTA = m_cur.ID_RICHIESTA
|
||||
, CODICE_OPERATORE_RECIPIENT = m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER = m_cur.ROUTING_NUMBER
|
||||
, DATA_CUT_OVER = m_cur.DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE = m_cur.DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO = m_cur.FLAG_LAVORATO
|
||||
WHERE m_cur.DATA_CUT_OVER > m_tgt.DATA_CUT_OVER
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
ID_RICHIESTA
|
||||
, MSISDN
|
||||
, CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER
|
||||
, DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO
|
||||
) VALUES (
|
||||
m_cur.ID_RICHIESTA
|
||||
, m_cur.MSISDN
|
||||
, m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, m_cur.ROUTING_NUMBER
|
||||
, m_cur.DATA_CUT_OVER
|
||||
, m_cur.DATA_ESTRAZIONE
|
||||
, m_cur.FLAG_LAVORATO
|
||||
);
|
||||
COMMIT;
|
||||
RETURN;
|
||||
END ESTR_RICHIESTA_PORTING;
|
||||
|
||||
|
||||
-- ===============================================================================
|
||||
-- 2018 C05 MNP_RU_524 Del.147 Procedura #4/8
|
||||
-- PROCESSO CESSAZIONI PORTING
|
||||
-- STATO 4 = CESSATA
|
||||
-- STATO 2 = DA_INVIARE dove l'invio viene fatto solo per numeri NON-TIM
|
||||
-- Riportare come CODICE_OPERATORE_RECIPIENT l'OLO proprietario originale del DN
|
||||
-- L'ultima condizione serve a estrarre OLO Cessatori (Donor) esistenti e validi
|
||||
-- La condizione originale sullo STATO 2 era la seguente (corretta ma INVOLUTA)
|
||||
-- MGR.STATO='2' AND NOT EXISTS (
|
||||
-- SELECT MO.COD_OLO FROM MNP_OLO MO, MNP_OLO_PREFISSI MOP WHERE MO.DESC_OLO IN('TIMT','TIMG')
|
||||
-- AND MOP.COD_OLO=MO.COD_OLO AND ( MOP.PREFIX=SUBSTR(MGR.MSISDN,3,3) OR MOP.PREFIX=SUBSTR(MGR.MSISDN,3,4) )
|
||||
-- )
|
||||
-- e' stata reingegnerizzata con la seguente logica
|
||||
-- MGR.STATO='2' AND "il proprietario originale della numerazione NON era TIM"
|
||||
-- Utilizza MERGE invece di LOOP on CURSOR
|
||||
|
||||
PROCEDURE ESTR_RICH_CESS_PORT(in_data_inizio IN DATE, in_data_fine IN DATE) IS
|
||||
BEGIN
|
||||
MERGE INTO MNP_DBP2DBCFX m_tgt
|
||||
USING (
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, FLAG_LAVORATO FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, O.DESC_OLO AS CODICE_OPERATORE_CESSATORE
|
||||
, O.ROUTING_NUMBER AS ROUTING_NUMBER_CESSATORE
|
||||
, MGR.DATARICEZIONERICHIESTA AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 0 AS FLAG_LAVORATO
|
||||
, MO.DESC_OLO AS CODICE_OPERATORE_RECIPIENT
|
||||
, MO.ROUTING_NUMBER AS ROUTING_NUMBER
|
||||
FROM MNP_GESTIONE_RICH_CESS_PORT MGR, MNP_OLO O
|
||||
, MNP_OLO_PREFISSI MOP INNER JOIN MNP_OLO MO ON MO.COD_OLO=MOP.COD_OLO
|
||||
WHERE
|
||||
MGR.MSISDN IS NOT NULL
|
||||
AND MGR.DATARICEZIONERICHIESTA BETWEEN in_data_inizio AND in_data_fine
|
||||
AND ( MOP.PREFIX=SUBSTR(MGR.MSISDN,3,3) OR MOP.PREFIX=SUBSTR(MGR.MSISDN,3,4) )
|
||||
AND ( MGR.STATO='4' OR ( MGR.STATO='2' AND MO.DESC_OLO NOT IN('TIMT','TIMG') ) )
|
||||
AND O.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
) m_cur
|
||||
ON (m_cur.MSISDN = m_tgt.MSISDN)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
ID_RICHIESTA = m_cur.ID_RICHIESTA
|
||||
, CODICE_OPERATORE_RECIPIENT = m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER = m_cur.ROUTING_NUMBER
|
||||
, DATA_CUT_OVER = m_cur.DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE = m_cur.DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO = m_cur.FLAG_LAVORATO
|
||||
WHERE m_cur.DATA_CUT_OVER > m_tgt.DATA_CUT_OVER
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
ID_RICHIESTA
|
||||
, MSISDN
|
||||
, CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER
|
||||
, DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO
|
||||
) VALUES (
|
||||
m_cur.ID_RICHIESTA
|
||||
, m_cur.MSISDN
|
||||
, m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, m_cur.ROUTING_NUMBER
|
||||
, m_cur.DATA_CUT_OVER
|
||||
, m_cur.DATA_ESTRAZIONE
|
||||
, m_cur.FLAG_LAVORATO
|
||||
);
|
||||
COMMIT;
|
||||
RETURN;
|
||||
END ESTR_RICH_CESS_PORT;
|
||||
|
||||
|
||||
-- ===============================================================================
|
||||
-- 2018 C05 MNP_RU_524 Del.147 Procedura #5/8
|
||||
-- PROCESSO CESSAZIONI
|
||||
-- Riportare come CODICE_OPERATORE_RECIPIENT l'OLO proprietario originale del DN
|
||||
-- L'ultima condizione serve a estrarre OLO Cessatori (Donor) esistenti e validi
|
||||
-- Utilizza MERGE invece di LOOP on CURSOR
|
||||
PROCEDURE ESTR_RICHIESTA_CESS(in_data_inizio IN DATE, in_data_fine IN DATE) IS
|
||||
BEGIN
|
||||
MERGE INTO MNP_DBP2DBCFX m_tgt
|
||||
USING (
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, FLAG_LAVORATO FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, O.DESC_OLO AS CODICE_OPERATORE_CESSATORE
|
||||
, O.ROUTING_NUMBER AS ROUTING_NUMBER_CESSATORE
|
||||
, MGR.DATARICEZIONERICHIESTA AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 0 AS FLAG_LAVORATO
|
||||
, MO.DESC_OLO AS CODICE_OPERATORE_RECIPIENT
|
||||
, MO.ROUTING_NUMBER AS ROUTING_NUMBER
|
||||
FROM
|
||||
MNP_GESTIONE_RICHIESTA_CESS MGR, MNP_OLO O
|
||||
, MNP_OLO_PREFISSI MOP INNER JOIN MNP_OLO MO ON MO.COD_OLO=MOP.COD_OLO
|
||||
WHERE
|
||||
MGR.MSISDN IS NOT NULL
|
||||
AND MGR.DATARICEZIONERICHIESTA BETWEEN in_data_inizio AND in_data_fine
|
||||
AND (MOP.PREFIX = SUBSTR(MGR.MSISDN,3,3) OR MOP.PREFIX = SUBSTR(MGR.MSISDN,3,4))
|
||||
AND O.DESC_OLO = MGR.CODICE_OPERATORE_RECIPIENT
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
) m_cur
|
||||
ON (m_cur.MSISDN = m_tgt.MSISDN)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
ID_RICHIESTA = m_cur.ID_RICHIESTA
|
||||
, CODICE_OPERATORE_RECIPIENT = m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER = m_cur.ROUTING_NUMBER
|
||||
, DATA_CUT_OVER = m_cur.DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE = m_cur.DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO = m_cur.FLAG_LAVORATO
|
||||
WHERE m_cur.DATA_CUT_OVER > m_tgt.DATA_CUT_OVER
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
ID_RICHIESTA
|
||||
, MSISDN
|
||||
, CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER
|
||||
, DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO
|
||||
) VALUES (
|
||||
m_cur.ID_RICHIESTA
|
||||
, m_cur.MSISDN
|
||||
, m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, m_cur.ROUTING_NUMBER
|
||||
, m_cur.DATA_CUT_OVER
|
||||
, m_cur.DATA_ESTRAZIONE
|
||||
, m_cur.FLAG_LAVORATO
|
||||
);
|
||||
COMMIT;
|
||||
RETURN;
|
||||
END ESTR_RICHIESTA_CESS;
|
||||
|
||||
-- ===============================================================================
|
||||
-- 2018 C05 MNP_RU_524 Del.147 Procedura #6/8
|
||||
-- PROCESSO DONOR STANDARD/MVNO/PrjHoc tabella storicizzata
|
||||
-- Utilizza MERGE invece di LOOP on CURSOR
|
||||
PROCEDURE ESTR_RICHIESTA_HIST(in_data_inizio IN DATE, in_data_fine IN DATE) IS
|
||||
BEGIN
|
||||
MERGE INTO MNP_DBP2DBCFX m_tgt
|
||||
USING (
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, FLAG_LAVORATO FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO = MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER_CALC AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 0 AS FLAG_LAVORATO
|
||||
FROM HIST_GESTIONE_RICHIESTA MGR
|
||||
WHERE MGR.MSISDN IS NOT NULL
|
||||
AND MGR.DATA_CUT_OVER_CALC BETWEEN in_data_inizio AND in_data_fine
|
||||
AND MGR.STATO IN(
|
||||
7 --VALIDATAOK
|
||||
, 9 --ACCETTATA
|
||||
, 14 --INCESSAZIONE
|
||||
, 15 --CESSATA
|
||||
, 16 --ESPLETATA
|
||||
, 99 --BLOCCATA
|
||||
)
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
) m_cur
|
||||
ON (m_cur.MSISDN = m_tgt.MSISDN)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
ID_RICHIESTA = m_cur.ID_RICHIESTA
|
||||
, CODICE_OPERATORE_RECIPIENT = m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER = m_cur.ROUTING_NUMBER
|
||||
, DATA_CUT_OVER = m_cur.DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE = m_cur.DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO = m_cur.FLAG_LAVORATO
|
||||
WHERE m_cur.DATA_CUT_OVER > m_tgt.DATA_CUT_OVER
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
ID_RICHIESTA
|
||||
, MSISDN
|
||||
, CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER
|
||||
, DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO
|
||||
) VALUES (
|
||||
m_cur.ID_RICHIESTA
|
||||
, m_cur.MSISDN
|
||||
, m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, m_cur.ROUTING_NUMBER
|
||||
, m_cur.DATA_CUT_OVER
|
||||
, m_cur.DATA_ESTRAZIONE
|
||||
, m_cur.FLAG_LAVORATO
|
||||
);
|
||||
COMMIT;
|
||||
RETURN;
|
||||
END ESTR_RICHIESTA_HIST;
|
||||
|
||||
|
||||
-- ===============================================================================
|
||||
-- 2018 C05 MNP_RU_524 Del.147 Procedura #7/8
|
||||
-- PROCESSO RECIPIENT STANDARD/MVNO/PRJHOC tabella storicizzata
|
||||
-- Utilizza MERGE invece di LOOP on CURSOR
|
||||
PROCEDURE ESTR_RICHIESTA_REC_HIST(in_data_inizio IN DATE, in_data_fine IN DATE) IS
|
||||
BEGIN
|
||||
MERGE INTO MNP_DBP2DBCFX m_tgt
|
||||
USING (
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, FLAG_LAVORATO FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO = MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER_AOM AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 0 AS FLAG_LAVORATO
|
||||
FROM HIST_GESTIONE_RICHIESTA_REC MGR
|
||||
WHERE MGR.MSISDN IS NOT NULL
|
||||
AND MGR.DATA_CUT_OVER_AOM BETWEEN in_data_inizio AND in_data_fine
|
||||
AND MGR.STATO IN(
|
||||
8 --VALIDATA
|
||||
, 10 --ACCETTATA
|
||||
, 11 --ATTESAEVASIONE
|
||||
, 12 --EVASA
|
||||
)
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
) m_cur
|
||||
ON (m_cur.MSISDN = m_tgt.MSISDN)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
ID_RICHIESTA = m_cur.ID_RICHIESTA
|
||||
, CODICE_OPERATORE_RECIPIENT = m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER = m_cur.ROUTING_NUMBER
|
||||
, DATA_CUT_OVER = m_cur.DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE = m_cur.DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO = m_cur.FLAG_LAVORATO
|
||||
WHERE m_cur.DATA_CUT_OVER > m_tgt.DATA_CUT_OVER
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
ID_RICHIESTA
|
||||
, MSISDN
|
||||
, CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER
|
||||
, DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO
|
||||
) VALUES (
|
||||
m_cur.ID_RICHIESTA
|
||||
, m_cur.MSISDN
|
||||
, m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, m_cur.ROUTING_NUMBER
|
||||
, m_cur.DATA_CUT_OVER
|
||||
, m_cur.DATA_ESTRAZIONE
|
||||
, m_cur.FLAG_LAVORATO
|
||||
);
|
||||
COMMIT;
|
||||
RETURN;
|
||||
END ESTR_RICHIESTA_REC_HIST;
|
||||
|
||||
|
||||
-- ===============================================================================
|
||||
-- 2018 C05 MNP_RU_524 Del.147 Procedura #8/8
|
||||
-- PROCESSO PORTING TERZE PARTI tabella storicizzata
|
||||
-- Utilizza MERGE invece di LOOP on CURSOR
|
||||
PROCEDURE ESTR_RICHIESTA_PORTING_HIST(in_data_inizio IN DATE, in_data_fine IN DATE) IS
|
||||
BEGIN
|
||||
MERGE INTO MNP_DBP2DBCFX m_tgt
|
||||
USING (
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, FLAG_LAVORATO FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO = MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 0 AS FLAG_LAVORATO
|
||||
FROM HIST_GESTIONE_RICHIESTAPORTING MGR
|
||||
WHERE MGR.MSISDN IS NOT NULL
|
||||
AND MGR.DATA_CUT_OVER BETWEEN in_data_inizio AND in_data_fine
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
) m_cur
|
||||
ON (m_cur.MSISDN = m_tgt.MSISDN)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
ID_RICHIESTA = m_cur.ID_RICHIESTA
|
||||
, CODICE_OPERATORE_RECIPIENT = m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER = m_cur.ROUTING_NUMBER
|
||||
, DATA_CUT_OVER = m_cur.DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE = m_cur.DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO = m_cur.FLAG_LAVORATO
|
||||
WHERE m_cur.DATA_CUT_OVER > m_tgt.DATA_CUT_OVER
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
ID_RICHIESTA
|
||||
, MSISDN
|
||||
, CODICE_OPERATORE_RECIPIENT
|
||||
, ROUTING_NUMBER
|
||||
, DATA_CUT_OVER
|
||||
, DATA_ESTRAZIONE
|
||||
, FLAG_LAVORATO
|
||||
) VALUES (
|
||||
m_cur.ID_RICHIESTA
|
||||
, m_cur.MSISDN
|
||||
, m_cur.CODICE_OPERATORE_RECIPIENT
|
||||
, m_cur.ROUTING_NUMBER
|
||||
, m_cur.DATA_CUT_OVER
|
||||
, m_cur.DATA_ESTRAZIONE
|
||||
, m_cur.FLAG_LAVORATO
|
||||
);
|
||||
COMMIT;
|
||||
RETURN;
|
||||
END ESTR_RICHIESTA_PORTING_HIST;
|
||||
|
||||
END PKG_DBP;
|
||||
/
|
||||
|
||||
@@ -0,0 +1,179 @@
|
||||
-- Execute as user MNP
|
||||
-- 2018 C05 MNP_RU_524
|
||||
-- Del.147 full export of porting history to OLOs
|
||||
-- Full extract for DNs in test set, with name of table of origin.
|
||||
SELECT * FROM (
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, TABELLA_ORIGINE FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT /*+ FULL(MGR) PARALLEL(5)*/ MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 'MNP_GESTIONE_RICHIESTA' AS TABELLA_ORIGINE
|
||||
FROM MNP_GESTIONE_RICHIESTA MGR
|
||||
WHERE MGR.MSISDN IN ( '393276330000' , '393288825691' , '393291154276' , '393318806310' , '393333559969' , '393334100351' , '393336146249' , '393342619998' , '393346320565'
|
||||
, '393346485003' , '393347137411' , '393357493056' , '393358320077' , '393381525418' , '393386128129' , '393394440718' , '393397925615' , '393402650849' , '393403250339'
|
||||
, '393404090400' , '393421293174' , '393423838570' , '393457350261' , '393460926424' , '393461435422' , '393480672962' , '393481198300' , '393483855131' , '393485142050'
|
||||
, '393487515463' , '393488959368' , '393490583568' , '393492449836' , '393495296549' , '393497083239' , '393737571533' , '393927061964' , '393928457910' , '393929504561'
|
||||
)
|
||||
AND STATO IN ( 7, 9, 14, 15, 16, 99 )
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
UNION ALL
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, TABELLA_ORIGINE FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT /*+ FULL(MGR) PARALLEL(5)*/ MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 'MNP_GESTIONE_RICHIESTA_REC' AS TABELLA_ORIGINE
|
||||
FROM MNP_GESTIONE_RICHIESTA_REC MGR
|
||||
WHERE MGR.MSISDN IN ( '393276330000' , '393288825691' , '393291154276' , '393318806310' , '393333559969' , '393334100351' , '393336146249' , '393342619998' , '393346320565'
|
||||
, '393346485003' , '393347137411' , '393357493056' , '393358320077' , '393381525418' , '393386128129' , '393394440718' , '393397925615' , '393402650849' , '393403250339'
|
||||
, '393404090400' , '393421293174' , '393423838570' , '393457350261' , '393460926424' , '393461435422' , '393480672962' , '393481198300' , '393483855131' , '393485142050'
|
||||
, '393487515463' , '393488959368' , '393490583568' , '393492449836' , '393495296549' , '393497083239' , '393737571533' , '393927061964' , '393928457910' , '393929504561'
|
||||
)
|
||||
AND STATO IN ( 8, 10, 11, 12 )
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
UNION ALL
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, TABELLA_ORIGINE FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 'MNP_GESTIONE_RICHIESTA_PORTING' AS TABELLA_ORIGINE
|
||||
FROM MNP_GESTIONE_RICHIESTA_PORTING MGR
|
||||
WHERE MGR.MSISDN IN ( '393276330000' , '393288825691' , '393291154276' , '393318806310' , '393333559969' , '393334100351' , '393336146249' , '393342619998' , '393346320565'
|
||||
, '393346485003' , '393347137411' , '393357493056' , '393358320077' , '393381525418' , '393386128129' , '393394440718' , '393397925615' , '393402650849' , '393403250339'
|
||||
, '393404090400' , '393421293174' , '393423838570' , '393457350261' , '393460926424' , '393461435422' , '393480672962' , '393481198300' , '393483855131' , '393485142050'
|
||||
, '393487515463' , '393488959368' , '393490583568' , '393492449836' , '393495296549' , '393497083239' , '393737571533' , '393927061964' , '393928457910' , '393929504561'
|
||||
)
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
UNION ALL
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, TABELLA_ORIGINE FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, O.DESC_OLO AS CODICE_OPERATORE_CESSATORE
|
||||
, O.ROUTING_NUMBER AS ROUTING_NUMBER_CESSATORE
|
||||
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 'MNP_GESTIONE_RICH_CESS_PORT' AS TABELLA_ORIGINE
|
||||
, MO.DESC_OLO AS CODICE_OPERATORE_RECIPIENT
|
||||
, MO.ROUTING_NUMBER AS ROUTING_NUMBER
|
||||
FROM MNP_GESTIONE_RICH_CESS_PORT MGR, MNP_OLO O
|
||||
, MNP_OLO_PREFISSI MOP INNER JOIN MNP_OLO MO ON MO.COD_OLO=MOP.COD_OLO
|
||||
WHERE MGR.MSISDN IN ( '393276330000' , '393288825691' , '393291154276' , '393318806310' , '393333559969' , '393334100351' , '393336146249' , '393342619998' , '393346320565'
|
||||
, '393346485003' , '393347137411' , '393357493056' , '393358320077' , '393381525418' , '393386128129' , '393394440718' , '393397925615' , '393402650849' , '393403250339'
|
||||
, '393404090400' , '393421293174' , '393423838570' , '393457350261' , '393460926424' , '393461435422' , '393480672962' , '393481198300' , '393483855131' , '393485142050'
|
||||
, '393487515463' , '393488959368' , '393490583568' , '393492449836' , '393495296549' , '393497083239' , '393737571533' , '393927061964' , '393928457910' , '393929504561'
|
||||
)
|
||||
AND ( MOP.PREFIX=SUBSTR(MGR.MSISDN,3,3) OR MOP.PREFIX=SUBSTR(MGR.MSISDN,3,4) )
|
||||
AND ( MGR.STATO='4' OR ( MGR.STATO='2' AND MO.DESC_OLO NOT IN('TIMT','TIMG') ) )
|
||||
AND O.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
UNION ALL
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, TABELLA_ORIGINE FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, O.DESC_OLO AS CODICE_OPERATORE_CESSATORE
|
||||
, O.ROUTING_NUMBER AS ROUTING_NUMBER_CESSATORE
|
||||
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 'MNP_GESTIONE_RICHIESTA_CESS' AS TABELLA_ORIGINE
|
||||
, MO.DESC_OLO AS CODICE_OPERATORE_RECIPIENT
|
||||
, MO.ROUTING_NUMBER AS ROUTING_NUMBER
|
||||
FROM
|
||||
MNP_GESTIONE_RICHIESTA_CESS MGR, MNP_OLO O
|
||||
, MNP_OLO_PREFISSI MOP INNER JOIN MNP_OLO MO ON MO.COD_OLO=MOP.COD_OLO
|
||||
WHERE MGR.MSISDN IN ( '393276330000' , '393288825691' , '393291154276' , '393318806310' , '393333559969' , '393334100351' , '393336146249' , '393342619998' , '393346320565'
|
||||
, '393346485003' , '393347137411' , '393357493056' , '393358320077' , '393381525418' , '393386128129' , '393394440718' , '393397925615' , '393402650849' , '393403250339'
|
||||
, '393404090400' , '393421293174' , '393423838570' , '393457350261' , '393460926424' , '393461435422' , '393480672962' , '393481198300' , '393483855131' , '393485142050'
|
||||
, '393487515463' , '393488959368' , '393490583568' , '393492449836' , '393495296549' , '393497083239' , '393737571533' , '393927061964' , '393928457910' , '393929504561'
|
||||
)
|
||||
AND (MOP.PREFIX = SUBSTR(MGR.MSISDN,3,3) OR MOP.PREFIX = SUBSTR(MGR.MSISDN,3,4))
|
||||
AND O.DESC_OLO = MGR.CODICE_OPERATORE_RECIPIENT
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
UNION ALL
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, TABELLA_ORIGINE FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO = MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 'HIST_GESTIONE_RICHIESTA' AS TABELLA_ORIGINE
|
||||
FROM HIST_GESTIONE_RICHIESTA MGR
|
||||
WHERE MGR.MSISDN IN ( '393276330000' , '393288825691' , '393291154276' , '393318806310' , '393333559969' , '393334100351' , '393336146249' , '393342619998' , '393346320565'
|
||||
, '393346485003' , '393347137411' , '393357493056' , '393358320077' , '393381525418' , '393386128129' , '393394440718' , '393397925615' , '393402650849' , '393403250339'
|
||||
, '393404090400' , '393421293174' , '393423838570' , '393457350261' , '393460926424' , '393461435422' , '393480672962' , '393481198300' , '393483855131' , '393485142050'
|
||||
, '393487515463' , '393488959368' , '393490583568' , '393492449836' , '393495296549' , '393497083239' , '393737571533' , '393927061964' , '393928457910' , '393929504561'
|
||||
)
|
||||
AND MGR.STATO IN( 7, 9, 14, 15, 16, 99 )
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
UNION ALL
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, TABELLA_ORIGINE FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO = MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 'HIST_GESTIONE_RICHIESTA_REC' AS TABELLA_ORIGINE
|
||||
FROM HIST_GESTIONE_RICHIESTA_REC MGR
|
||||
WHERE MGR.MSISDN IN ( '393276330000' , '393288825691' , '393291154276' , '393318806310' , '393333559969' , '393334100351' , '393336146249' , '393342619998' , '393346320565'
|
||||
, '393346485003' , '393347137411' , '393357493056' , '393358320077' , '393381525418' , '393386128129' , '393394440718' , '393397925615' , '393402650849' , '393403250339'
|
||||
, '393404090400' , '393421293174' , '393423838570' , '393457350261' , '393460926424' , '393461435422' , '393480672962' , '393481198300' , '393483855131' , '393485142050'
|
||||
, '393487515463' , '393488959368' , '393490583568' , '393492449836' , '393495296549' , '393497083239' , '393737571533' , '393927061964' , '393928457910' , '393929504561'
|
||||
)
|
||||
AND MGR.STATO IN( 8, 10, 11, 12 )
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
UNION ALL
|
||||
SELECT ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT, ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE, TABELLA_ORIGINE FROM (
|
||||
SELECT m_cur_bulk.*, row_number() OVER (PARTITION BY MSISDN ORDER BY DATA_CUT_OVER DESC) rnum FROM (
|
||||
SELECT
|
||||
MGR.ID_RICHIESTA AS ID_RICHIESTA
|
||||
, MGR.MSISDN AS MSISDN
|
||||
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO = MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
|
||||
, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 'HIST_GESTIONE_RICHIESTAPORTING' AS TABELLA_ORIGINE
|
||||
FROM HIST_GESTIONE_RICHIESTAPORTING MGR
|
||||
WHERE MGR.MSISDN IN ( '393276330000' , '393288825691' , '393291154276' , '393318806310' , '393333559969' , '393334100351' , '393336146249' , '393342619998' , '393346320565'
|
||||
, '393346485003' , '393347137411' , '393357493056' , '393358320077' , '393381525418' , '393386128129' , '393394440718' , '393397925615' , '393402650849' , '393403250339'
|
||||
, '393404090400' , '393421293174' , '393423838570' , '393457350261' , '393460926424' , '393461435422' , '393480672962' , '393481198300' , '393483855131' , '393485142050'
|
||||
, '393487515463' , '393488959368' , '393490583568' , '393492449836' , '393495296549' , '393497083239' , '393737571533' , '393927061964' , '393928457910' , '393929504561'
|
||||
)
|
||||
) m_cur_bulk
|
||||
)
|
||||
WHERE rnum = 1
|
||||
) ORDER BY MSISDN, DATA_CUT_OVER;
|
||||
@@ -0,0 +1,18 @@
|
||||
-- 2018 C05 MNP_RU_524
|
||||
--execute as MNP
|
||||
|
||||
--spool /mnpapp/log/script/dbc_Del147.log;
|
||||
|
||||
-----------------------------
|
||||
--CREATE/MODIFY OBJECT
|
||||
@@MNP_DDL_Del147_IDX_HIST.sql
|
||||
@@MNP_DDL_Del147_IDX_LIVE.sql
|
||||
@@MNP_DDL_Del147_PKG_DBP.sql
|
||||
|
||||
-----------------------------
|
||||
--INSERT/UPDATE DATA
|
||||
--@@dbcDML.sql
|
||||
|
||||
-----------------------------
|
||||
commit;
|
||||
spool off;
|
||||
@@ -0,0 +1,311 @@
|
||||
CREATE OR REPLACE PACKAGE PKG_DBP AS
|
||||
|
||||
PROCEDURE estr_RICHIESTA (data_inizio IN DATE, data_fine IN DATE);
|
||||
PROCEDURE estr_RICHIESTA_REC (data_inizio IN DATE, data_fine IN DATE);
|
||||
PROCEDURE estr_RICHIESTA_PORTING (data_inizio IN DATE, data_fine IN DATE);
|
||||
PROCEDURE estr_RICH_CESS_PORT (data_inizio IN DATE, data_fine IN DATE);
|
||||
PROCEDURE estr_RICHIESTA_CESS (data_inizio IN DATE, data_fine IN DATE);
|
||||
|
||||
END PKG_DBP;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE package body PKG_DBP as
|
||||
|
||||
-- PROCESSO DONOR STANDARD/MVNO/PrjHoc
|
||||
procedure estr_RICHIESTA(data_inizio IN DATE, data_fine IN DATE) IS
|
||||
|
||||
oldDataCutOver date ;
|
||||
|
||||
CURSOR SEL_RICHIESTA IS
|
||||
SELECT mgr.id_richiesta AS ID_RICHIESTA
|
||||
, NVL (mgr.msisdn, '') AS MSISDN
|
||||
, mgr.codice_operatore_recipient AS CODICE_OPERATORE_RECIPIENT
|
||||
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
|
||||
, mgr.data_cut_over AS DATA_CUT_OVER, SYSDATE AS DATA_ESTRAZIONE
|
||||
, 0 AS FLAG_LAVORATO
|
||||
FROM mnp_gestione_richiesta mgr
|
||||
WHERE STATO IN(7 --VALIDATAOK
|
||||
,9 --ACCETTATA
|
||||
,14 --INCESSAZIONE
|
||||
,15 --CESSATA
|
||||
,16 --ESPLETATA
|
||||
,99 --BLOCCATA
|
||||
)
|
||||
AND mgr.DATA_CUT_OVER BETWEEN data_inizio and data_fine;
|
||||
|
||||
BEGIN
|
||||
|
||||
FOR rigaLetta IN SEL_RICHIESTA LOOP
|
||||
BEGIN
|
||||
INSERT INTO MNP_DBP2DBCFX (
|
||||
ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT,
|
||||
ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE,
|
||||
FLAG_LAVORATO)
|
||||
VALUES ( rigaLetta.ID_RICHIESTA
|
||||
,rigaLetta.MSISDN
|
||||
,rigaLetta.CODICE_OPERATORE_RECIPIENT
|
||||
,rigaLetta.ROUTING_NUMBER
|
||||
,rigaLetta.DATA_CUT_OVER
|
||||
,rigaLetta.DATA_ESTRAZIONE
|
||||
,rigaLetta.FLAG_LAVORATO
|
||||
);
|
||||
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
|
||||
BEGIN
|
||||
SELECT DATA_CUT_OVER
|
||||
INTO oldDataCutOver
|
||||
FROM MNP_DBP2DBCFX
|
||||
WHERE MSISDN = rigaLetta.MSISDN;
|
||||
|
||||
IF rigaLetta.DATA_CUT_OVER >= oldDataCutOver THEN
|
||||
UPDATE MNP_DBP2DBCFX
|
||||
SET ID_RICHIESTA=rigaLetta.ID_RICHIESTA
|
||||
,CODICE_OPERATORE_RECIPIENT = rigaLetta.CODICE_OPERATORE_RECIPIENT
|
||||
,ROUTING_NUMBER = rigaLetta.ROUTING_NUMBER
|
||||
,DATA_CUT_OVER = rigaLetta.DATA_CUT_OVER
|
||||
,DATA_ESTRAZIONE = rigaLetta.DATA_ESTRAZIONE
|
||||
,FLAG_LAVORATO = rigaLetta.FLAG_LAVORATO
|
||||
WHERE MSISDN = rigaLetta.MSISDN;
|
||||
END IF;
|
||||
END;
|
||||
END;
|
||||
END LOOP;
|
||||
COMMIT;
|
||||
return;
|
||||
|
||||
END estr_RICHIESTA;
|
||||
|
||||
-- PROCESSO RECIPIENT STANDARD/MVNO/PrjHoc
|
||||
procedure estr_RICHIESTA_REC(data_inizio IN DATE, data_fine IN DATE) IS
|
||||
|
||||
oldDataCutOver date ;
|
||||
|
||||
CURSOR SEL_RICHIESTA IS
|
||||
SELECT mgr.id_richiesta AS id_richiesta, NVL (mgr.msisdn, '') AS msisdn,
|
||||
mgr.codice_operatore_recipient AS codice_operatore_recipient,
|
||||
(SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER,
|
||||
mgr.data_cut_over AS data_cut_over, SYSDATE AS data_estrazione,
|
||||
0 AS flag_lavorato
|
||||
FROM mnp_gestione_richiesta_rec mgr
|
||||
WHERE STATO IN(8 --VALIDATA
|
||||
,10 --ACCETTATA
|
||||
,11 --ATTESAEVASIONE
|
||||
,12 --EVASA
|
||||
)
|
||||
AND mgr.data_cut_over BETWEEN data_inizio AND data_fine;
|
||||
|
||||
BEGIN
|
||||
|
||||
FOR rigaLetta IN SEL_RICHIESTA LOOP
|
||||
BEGIN
|
||||
INSERT INTO MNP_DBP2DBCFX (
|
||||
ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT,
|
||||
ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE,
|
||||
FLAG_LAVORATO)
|
||||
VALUES ( rigaLetta.ID_RICHIESTA
|
||||
,rigaLetta.MSISDN
|
||||
,rigaLetta.CODICE_OPERATORE_RECIPIENT
|
||||
,rigaLetta.ROUTING_NUMBER
|
||||
,rigaLetta.DATA_CUT_OVER
|
||||
,rigaLetta.DATA_ESTRAZIONE
|
||||
,rigaLetta.FLAG_LAVORATO
|
||||
);
|
||||
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
|
||||
BEGIN
|
||||
SELECT DATA_CUT_OVER
|
||||
INTO oldDataCutOver
|
||||
FROM MNP_DBP2DBCFX
|
||||
WHERE MSISDN = rigaLetta.MSISDN;
|
||||
|
||||
IF rigaLetta.DATA_CUT_OVER >= oldDataCutOver THEN
|
||||
UPDATE MNP_DBP2DBCFX
|
||||
SET ID_RICHIESTA=rigaLetta.ID_RICHIESTA
|
||||
,CODICE_OPERATORE_RECIPIENT = rigaLetta.CODICE_OPERATORE_RECIPIENT
|
||||
,ROUTING_NUMBER = rigaLetta.ROUTING_NUMBER
|
||||
,DATA_CUT_OVER = rigaLetta.DATA_CUT_OVER
|
||||
,DATA_ESTRAZIONE = rigaLetta.DATA_ESTRAZIONE
|
||||
,FLAG_LAVORATO = rigaLetta.FLAG_LAVORATO
|
||||
WHERE MSISDN = rigaLetta.MSISDN;
|
||||
END IF;
|
||||
END;
|
||||
END;
|
||||
END LOOP;
|
||||
COMMIT;
|
||||
return;
|
||||
|
||||
END estr_RICHIESTA_REC;
|
||||
|
||||
-- PROCESSO PORTING TERZE PARTI
|
||||
procedure estr_RICHIESTA_PORTING(data_inizio IN DATE, data_fine IN DATE) IS
|
||||
oldDataCutOver date ;
|
||||
|
||||
CURSOR SEL_RICHIESTA IS
|
||||
SELECT mgr.id_richiesta AS id_richiesta, NVL (mgr.msisdn, '') AS msisdn,
|
||||
mgr.codice_operatore_recipient AS codice_operatore_recipient,
|
||||
(SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER,
|
||||
mgr.data_cut_over AS data_cut_over, SYSDATE AS data_estrazione,
|
||||
0 AS flag_lavorato
|
||||
FROM mnp_gestione_richiesta_porting mgr
|
||||
where mgr.data_cut_over BETWEEN data_inizio AND data_fine;
|
||||
|
||||
BEGIN
|
||||
|
||||
FOR rigaLetta IN SEL_RICHIESTA LOOP
|
||||
BEGIN
|
||||
INSERT INTO MNP_DBP2DBCFX (
|
||||
ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT,
|
||||
ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE,
|
||||
FLAG_LAVORATO)
|
||||
VALUES ( rigaLetta.ID_RICHIESTA
|
||||
,rigaLetta.MSISDN
|
||||
,rigaLetta.CODICE_OPERATORE_RECIPIENT
|
||||
,rigaLetta.ROUTING_NUMBER
|
||||
,rigaLetta.DATA_CUT_OVER
|
||||
,rigaLetta.DATA_ESTRAZIONE
|
||||
,rigaLetta.FLAG_LAVORATO
|
||||
);
|
||||
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
|
||||
BEGIN
|
||||
SELECT DATA_CUT_OVER
|
||||
INTO oldDataCutOver
|
||||
FROM MNP_DBP2DBCFX
|
||||
WHERE MSISDN = rigaLetta.MSISDN;
|
||||
|
||||
IF rigaLetta.DATA_CUT_OVER >= oldDataCutOver THEN
|
||||
UPDATE MNP_DBP2DBCFX
|
||||
SET ID_RICHIESTA=rigaLetta.ID_RICHIESTA
|
||||
,CODICE_OPERATORE_RECIPIENT = rigaLetta.CODICE_OPERATORE_RECIPIENT
|
||||
,ROUTING_NUMBER = rigaLetta.ROUTING_NUMBER
|
||||
,DATA_CUT_OVER = rigaLetta.DATA_CUT_OVER
|
||||
,DATA_ESTRAZIONE = rigaLetta.DATA_ESTRAZIONE
|
||||
,FLAG_LAVORATO = rigaLetta.FLAG_LAVORATO
|
||||
WHERE MSISDN = rigaLetta.MSISDN;
|
||||
END IF;
|
||||
END;
|
||||
END;
|
||||
END LOOP;
|
||||
COMMIT;
|
||||
return;
|
||||
|
||||
END estr_RICHIESTA_PORTING;
|
||||
|
||||
-- PROCESSO CESSAZIONI PORTING
|
||||
procedure estr_RICH_CESS_PORT(data_inizio IN DATE, data_fine IN DATE) IS
|
||||
oldDataCutOver date ;
|
||||
|
||||
CURSOR SEL_RICHIESTA IS
|
||||
SELECT mgr.id_richiesta AS id_richiesta, NVL (mgr.msisdn, '') AS msisdn,
|
||||
o.desc_olo AS codice_operatore_recipient,
|
||||
o.ROUTING_NUMBER AS routing_number,
|
||||
mgr.data_cut_over AS data_cut_over, SYSDATE AS data_estrazione,
|
||||
0 AS flag_lavorato
|
||||
FROM mnp_gestione_rich_CESS_PORT mgr, mnp_olo o
|
||||
where mgr.data_cut_over BETWEEN data_inizio AND data_fine
|
||||
AND (mgr.STATO='4' OR
|
||||
(mgr.stato='2' AND NOT EXISTS (SELECT 1 FROM MNP_OLO MO, MNP_OLO_PREFISSI MOP
|
||||
WHERE MO.DESC_OLO IN('TIMT','TIMG')
|
||||
AND MOP.COD_OLO=MO.COD_OLO
|
||||
AND MOP.PREFIX=substr(mgr.MSISDN,3,3)
|
||||
) )
|
||||
)
|
||||
AND o.DESC_OLO=mgr.CODICE_OPERATORE_RECIPIENT;
|
||||
|
||||
BEGIN
|
||||
|
||||
FOR rigaLetta IN SEL_RICHIESTA LOOP
|
||||
BEGIN
|
||||
INSERT INTO MNP_DBP2DBCFX (
|
||||
ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT,
|
||||
ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE,
|
||||
FLAG_LAVORATO)
|
||||
VALUES ( rigaLetta.ID_RICHIESTA
|
||||
,rigaLetta.MSISDN
|
||||
,rigaLetta.CODICE_OPERATORE_RECIPIENT
|
||||
,rigaLetta.ROUTING_NUMBER
|
||||
,rigaLetta.DATA_CUT_OVER
|
||||
,rigaLetta.DATA_ESTRAZIONE
|
||||
,rigaLetta.FLAG_LAVORATO
|
||||
);
|
||||
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
|
||||
BEGIN
|
||||
SELECT DATA_CUT_OVER
|
||||
INTO oldDataCutOver
|
||||
FROM MNP_DBP2DBCFX
|
||||
WHERE MSISDN = rigaLetta.MSISDN;
|
||||
|
||||
IF rigaLetta.DATA_CUT_OVER >= oldDataCutOver THEN
|
||||
UPDATE MNP_DBP2DBCFX
|
||||
SET ID_RICHIESTA=rigaLetta.ID_RICHIESTA
|
||||
,CODICE_OPERATORE_RECIPIENT = rigaLetta.CODICE_OPERATORE_RECIPIENT
|
||||
,ROUTING_NUMBER = rigaLetta.ROUTING_NUMBER
|
||||
,DATA_CUT_OVER = rigaLetta.DATA_CUT_OVER
|
||||
,DATA_ESTRAZIONE = rigaLetta.DATA_ESTRAZIONE
|
||||
,FLAG_LAVORATO = rigaLetta.FLAG_LAVORATO
|
||||
WHERE MSISDN = rigaLetta.MSISDN;
|
||||
END IF;
|
||||
END;
|
||||
END;
|
||||
END LOOP;
|
||||
COMMIT;
|
||||
return;
|
||||
END estr_RICH_CESS_PORT;
|
||||
|
||||
-- PROCESSO CESSAZIONI
|
||||
procedure estr_RICHIESTA_CESS(data_inizio IN DATE, data_fine IN DATE) IS
|
||||
oldDataCutOver date ;
|
||||
|
||||
CURSOR SEL_RICHIESTA IS
|
||||
SELECT mgr.id_richiesta AS id_richiesta, NVL (mgr.msisdn, '') AS msisdn,
|
||||
o.desc_olo AS codice_operatore_recipient,
|
||||
o.ROUTING_NUMBER AS routing_number,
|
||||
mgr.data_cut_over AS data_cut_over, SYSDATE AS data_estrazione,
|
||||
0 AS flag_lavorato
|
||||
FROM mnp_gestione_richiesta_CESS mgr, mnp_olo o , MNP_OLO_PREFISSI MOP, mnp_olo mo
|
||||
where mgr.data_cut_over BETWEEN data_inizio AND data_fine
|
||||
AND o.DESC_OLO=mgr.CODICE_OPERATORE_RECIPIENT
|
||||
and MOP.PREFIX=substr(mgr.MSISDN,3,3)
|
||||
and mo.COD_OLO=mop.cod_olo;
|
||||
|
||||
BEGIN
|
||||
|
||||
FOR rigaLetta IN SEL_RICHIESTA LOOP
|
||||
BEGIN
|
||||
INSERT INTO MNP_DBP2DBCFX (
|
||||
ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT,
|
||||
ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE,
|
||||
FLAG_LAVORATO)
|
||||
VALUES ( rigaLetta.ID_RICHIESTA
|
||||
,rigaLetta.MSISDN
|
||||
,rigaLetta.CODICE_OPERATORE_RECIPIENT
|
||||
,rigaLetta.ROUTING_NUMBER
|
||||
,rigaLetta.DATA_CUT_OVER
|
||||
,rigaLetta.DATA_ESTRAZIONE
|
||||
,rigaLetta.FLAG_LAVORATO
|
||||
);
|
||||
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
|
||||
BEGIN
|
||||
SELECT DATA_CUT_OVER
|
||||
INTO oldDataCutOver
|
||||
FROM MNP_DBP2DBCFX
|
||||
WHERE MSISDN = rigaLetta.MSISDN;
|
||||
|
||||
IF rigaLetta.DATA_CUT_OVER >= oldDataCutOver THEN
|
||||
UPDATE MNP_DBP2DBCFX
|
||||
SET ID_RICHIESTA=rigaLetta.ID_RICHIESTA
|
||||
,CODICE_OPERATORE_RECIPIENT = rigaLetta.CODICE_OPERATORE_RECIPIENT
|
||||
,ROUTING_NUMBER = rigaLetta.ROUTING_NUMBER
|
||||
,DATA_CUT_OVER = rigaLetta.DATA_CUT_OVER
|
||||
,DATA_ESTRAZIONE = rigaLetta.DATA_ESTRAZIONE
|
||||
,FLAG_LAVORATO = rigaLetta.FLAG_LAVORATO
|
||||
WHERE MSISDN = rigaLetta.MSISDN;
|
||||
END IF;
|
||||
END;
|
||||
END;
|
||||
END LOOP;
|
||||
COMMIT;
|
||||
return;
|
||||
|
||||
END estr_RICHIESTA_CESS;
|
||||
|
||||
END PKG_DBP;
|
||||
/
|
||||
Reference in New Issue
Block a user