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,2 @@
Contiene gli script per l'estrazione delle linee soggette a porting, necessarie per l'infasamento iniziale di DBC-FX
per l'Extra Kit di Aprile 2010

View File

@@ -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/runDbc2Dbcfx.sql $1 $2 $3 >$THIS_PATH/runDbc2Dbcfx.log
fi

View File

@@ -0,0 +1,32 @@
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_dbp2dbcfx.csv
SELECT MSISDN
||';'||TO_CHAR(DATA_CUT_OVER,'ddmmyyyy hh24miss')
||';'||CODICE_OPERATORE_RECIPIENT
||';'||NVL(ROUTING_NUMBER,' ')
||';'||TO_CHAR(SYSDATE,'ddmmyyyy hh24miss')
||';'||'2'
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

View File

@@ -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/runDbc2FASTWEB.sql $1 $2 $3 >$THIS_PATH/runDbc2FASTWEB.log
fi

View File

@@ -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_dbp2FASTWEB.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

View File

@@ -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.sql $1 $2 >$THIS_PATH/runRichiesta.log
fi

View File

@@ -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 ( DATA_INIZIO, DATA_FINE );
COMMIT;
END;
/
exit

View File

@@ -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.sql $1 $2 >$THIS_PATH/runRichiestaCess.log
fi

View File

@@ -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

View File

@@ -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.sql $1 $2 >$THIS_PATH/runRichiestaCessPort.log
fi

View File

@@ -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

View File

@@ -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.sql $1 $2 >$THIS_PATH/runRichiestaPorting.log
fi

View File

@@ -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_PORTING ( DATA_INIZIO, DATA_FINE );
COMMIT;
END;
/
exit

View File

@@ -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.sql $1 $2 >$THIS_PATH/runRichiestaRec.log
fi

View File

@@ -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_REC ( DATA_INIZIO, DATA_FINE );
COMMIT;
END;
/
exit

View File

@@ -0,0 +1,21 @@
CREATE TABLE MNP_DBP2DBCFX
(
ID_RICHIESTA VARCHAR2(23 BYTE) NOT NULL,
MSISDN VARCHAR2(15 BYTE) NOT NULL,
CODICE_OPERATORE_RECIPIENT VARCHAR2(4 BYTE),
ROUTING_NUMBER VARCHAR2(3 BYTE) DEFAULT NULL,
DATA_CUT_OVER DATE,
DATA_ESTRAZIONE DATE NOT NULL,
FLAG_LAVORATO NUMBER(1) DEFAULT 0 NOT NULL
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING;
CREATE UNIQUE INDEX PK_MNP_DBP2DBCFX ON MNP_DBP2DBCFX
(MSISDN)
LOGGING
NOPARALLEL;

View File

@@ -0,0 +1,311 @@
CREATE OR REPLACE PACKAGE MNP.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 MNP.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 /*+ full(mgr) parallel(5)*/ 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 /*+ full(mgr) parallel(5)*/ 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) OR MOP.PREFIX=substr(mgr.MSISDN,3,4) )
) )
)
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) OR MOP.PREFIX=substr(mgr.MSISDN,3,4) )
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;
/

View File

@@ -0,0 +1,3 @@
UPDATE MNP_OLO
SET ROUTING_NUMBER='362' WHERE DESC_OLO='TIMG';
COMMIT;

View File

@@ -0,0 +1,7 @@
LOCALDIR_DA_INVIARE=file_da_inviare
LOCALDIR_INVIATI=file_inviati
LOCALDIR_FALLITI=file_falliti
MESI_INTERVALLO_INFASAMENTO=12
DATA_INIZIO_INFASAMENTO=19900101
NUMERO_RIGHE_FILE=1000000
INVIO_FILE_SFTP=YES

View File

@@ -0,0 +1,106 @@
#!/usr/bin/ksh
THIS_PATH=`dirname $0`
. $THIS_PATH/../setEnv.sh
. $THIS_PATH/export_coop.properties
$THIS_PATH/../TestNodo.sh
if [ $? -eq 0 ]
then
if [ "$1" = "" ] ; then
echo "Utilizzo: ${0} modalità infasamento"
echo "i valori ammessi sono FULL o DELTA"
exit -1
fi
if [ -f "$THIS_PATH/date_infasamento.txt" ] ; then
rm "$THIS_PATH/date_infasamento.txt"
fi
echo `date +"%Y-%m-%d %H:%M:%S"` "Inizio infasamento dati per export COOP" >> $THIS_PATH/infasamentoExportCOOP.log
if [ "$1" = "FULL" ] ; then
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/infasamentoExportCOOPInitialize.sql $DATA_INIZIO_INFASAMENTO $MESI_INTERVALLO_INFASAMENTO $THIS_PATH>>$THIS_PATH/infasamentoExportCOOPSQL.log
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore infasamento dati per export COOP" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/infasamentoExportCOOP.log" >> $THIS_PATH/infasamentoExportCOOP.log
exit -1
fi
else
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/infasamentoExportCOOPGetDate.sql $THIS_PATH>>$THIS_PATH/infasamentoExportCOOPSQL.log
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore infasamento dati per export COOP" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/infasamentoExportCOOP.log" >> $THIS_PATH/infasamentoExportCOOP.log
exit -1
fi
fi
START_DATE=$(awk -F";" '{print $1}' < $THIS_PATH/date_infasamento.txt)
END_DATE=$(awk -F";" '{print $2}' < $THIS_PATH/date_infasamento.txt)
FINAL_DATE=$(awk -F";" '{print $3}' < $THIS_PATH/date_infasamento.txt)
while [ $START_DATE -le $FINAL_DATE ] ;
do
echo `date +"%Y-%m-%d %H:%M:%S"` "Inizio infasamento da $START_DATE a $END_DATE" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "Inizio infasamento da $START_DATE a $END_DATE dello script runRichiesta_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
$THIS_PATH/runRichiesta_Portati_COOP.sh $START_DATE $END_DATE
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore infasamento da $START_DATE a $END_DATE dello script runRichiesta_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/infasamentoExportCOOP.log" >> $THIS_PATH/infasamentoExportCOOP.log
exit -1
fi
echo `date +"%Y-%m-%d %H:%M:%S"` "Fine infasamento da $START_DATE a $END_DATE dello script runRichiesta_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "Inizio infasamento da $START_DATE a $END_DATE dello script runRichiestaRec_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
$THIS_PATH/runRichiestaRec_Portati_COOP.sh $START_DATE $END_DATE
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore infasamento da $START_DATE a $END_DATE dello script runRichiestaRec_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/infasamentoExportCOOP.log" >> $THIS_PATH/infasamentoExportCOOP.log
exit -1
fi
echo `date +"%Y-%m-%d %H:%M:%S"` "Fine infasamento da $START_DATE a $END_DATE dello script runRichiestaRec_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "Inizio infasamento da $START_DATE a $END_DATE dello script runRichiestaPorting_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
$THIS_PATH/runRichiestaPorting_Portati_COOP.sh $START_DATE $END_DATE
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore infasamento da $START_DATE a $END_DATE dello script runRichiestaPorting_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/infasamentoExportCOOP.log" >> $THIS_PATH/infasamentoExportCOOP.log
exit -1
fi
echo `date +"%Y-%m-%d %H:%M:%S"` "Fine infasamento da $START_DATE a $END_DATE dello script runRichiestaPorting_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "Inizio infasamento da $START_DATE a $END_DATE dello script runRichiestaCess_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
$THIS_PATH/runRichiestaCess_Portati_COOP.sh $START_DATE $END_DATE
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore infasamento da $START_DATE a $END_DATE dello script runRichiestaCess_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/infasamentoExportCOOP.log" >> $THIS_PATH/infasamentoExportCOOP.log
exit -1
fi
echo `date +"%Y-%m-%d %H:%M:%S"` "Fine infasamento da $START_DATE a $END_DATE dello script runRichiestaCess_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "Inizio infasamento da $START_DATE a $END_DATE dello script runRichiestaCessPort_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
$THIS_PATH/runRichiestaCessPort_Portati_COOP.sh $START_DATE $END_DATE
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore infasamento da $START_DATE a $END_DATE dello script runRichiestaCessPort_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/infasamentoExportCOOP.log" >> $THIS_PATH/infasamentoExportCOOP.log
exit -1
fi
echo `date +"%Y-%m-%d %H:%M:%S"` "Fine infasamento da $START_DATE a $END_DATE dello script runRichiestaCessPort_Portati_COOP.sh" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "Fine infasamento da $START_DATE a $END_DATE" >> $THIS_PATH/infasamentoExportCOOP.log
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/infasamentoExportCOOPUpdateDate.sql $MESI_INTERVALLO_INFASAMENTO $THIS_PATH>>$THIS_PATH/infasamentoExportCOOPSQL.log
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore aggiornamento date per export COOP" >> $THIS_PATH/infasamentoExportCOOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/infasamentoExportCOOP.log" >> $THIS_PATH/infasamentoExportCOOP.log
exit -1
fi
START_DATE=$(awk -F";" '{print $1}' < $THIS_PATH/date_infasamento.txt)
END_DATE=$(awk -F";" '{print $2}' < $THIS_PATH/date_infasamento.txt)
done
echo `date +"%Y-%m-%d %H:%M:%S"` "Fine infasamento dati per export COOP" >> $THIS_PATH/infasamentoExportCOOP.log
if [ -f "$THIS_PATH/date_infasamento.txt" ] ; then
rm "$THIS_PATH/date_infasamento.txt"
fi
fi

View File

@@ -0,0 +1,16 @@
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';
spool &1/date_infasamento.txt;
select START_DATE ||';'|| least(END_DATE, FINAL_DATE) ||';'|| FINAL_DATE from MNP_DBP2COOP_DATE WHERE ROWNUM = 1;
spool off
/
EXIT

View File

@@ -0,0 +1,30 @@
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';
truncate table MNP_DBP2COOP_DATE;
truncate table MNP_DBP2COOP;
insert into MNP_DBP2COOP_DATE
select TO_CHAR(t1.START_DATE,'YYYYMMDD'), TO_CHAR(ADD_MONTHS(t1.START_DATE, &2),'YYYYMMDD'), TO_CHAR(SYSDATE, 'YYYYMMDD') from (
select min(t.MIN_DATE) as START_DATE from (
select min(MGR.DATA_CUT_OVER_CALC) AS MIN_DATE from MNP_GESTIONE_RICHIESTA MGR WHERE MGR.DATA_CUT_OVER_CALC >= TO_DATE('&1','YYYYMMDD') UNION ALL
select min(MGR.DATA_CUT_OVER_AOM) AS MIN_DATE from MNP_GESTIONE_RICHIESTA_REC MGR WHERE MGR.DATA_CUT_OVER_AOM >= TO_DATE('&1','YYYYMMDD') UNION ALL
select min(MGR.DATA_CUT_OVER) AS MIN_DATE from MNP_GESTIONE_RICHIESTA_PORTING MGR WHERE MGR.DATA_CUT_OVER >= TO_DATE('&1','YYYYMMDD') UNION ALL
select min(MGR.DATARICEZIONERICHIESTA) AS MIN_DATE from MNP_GESTIONE_RICH_CESS_PORT MGR WHERE MGR.DATARICEZIONERICHIESTA >= TO_DATE('&1','YYYYMMDD') UNION ALL
select min(MGR.DATARICEZIONERICHIESTA) AS MIN_DATE from MNP_GESTIONE_RICHIESTA_CESS MGR WHERE MGR.DATARICEZIONERICHIESTA >= TO_DATE('&1','YYYYMMDD') UNION ALL
select min(MGR.DATA_CUT_OVER_CALC) AS MIN_DATE from HIST_GESTIONE_RICHIESTA MGR WHERE MGR.DATA_CUT_OVER_CALC >= TO_DATE('&1','YYYYMMDD') UNION ALL
select min(MGR.DATA_CUT_OVER_AOM) AS MIN_DATE from HIST_GESTIONE_RICHIESTA_REC MGR WHERE MGR.DATA_CUT_OVER_AOM >= TO_DATE('&1','YYYYMMDD') UNION ALL
select min(MGR.DATA_CUT_OVER) AS MIN_DATE from HIST_GESTIONE_RICHIESTAPORTING MGR WHERE MGR.DATA_CUT_OVER >= TO_DATE('&1','YYYYMMDD')) t) t1;
COMMIT;
spool &3/date_infasamento.txt;
select START_DATE ||';'|| least(END_DATE, FINAL_DATE) ||';'|| FINAL_DATE from MNP_DBP2COOP_DATE WHERE ROWNUM = 1;
spool off
/
EXIT

View File

@@ -0,0 +1,18 @@
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_DBP2COOP_DATE m set m.START_DATE = TO_CHAR(TO_DATE(m.END_DATE,'YYYYMMDD') + 1,'YYYYMMDD'), m.END_DATE = TO_CHAR(ADD_MONTHS(TO_DATE(m.END_DATE,'YYYYMMDD'), &1),'YYYYMMDD') WHERE ROWNUM = 1;
COMMIT;
spool &2/date_infasamento.txt;
select START_DATE ||';'|| least(END_DATE, FINAL_DATE) ||';'|| FINAL_DATE from MNP_DBP2COOP_DATE WHERE ROWNUM = 1;
spool off
/
EXIT

View File

@@ -0,0 +1,99 @@
#!/usr/bin/ksh
THIS_PATH=`dirname $0`
. $THIS_PATH/../setEnv.sh
. $THIS_PATH/export_coop.properties
$THIS_PATH/../TestNodo.sh
if [ $? -eq 0 ]
then
if [ -f "$THIS_PATH/iteration_number.txt" ] ; then
rm "$THIS_PATH/iteration_number.txt"
fi
if [ -f "$THIS_PATH/tmp_mnp_dbp2COOP.txt" ] ; then
rm "$THIS_PATH/tmp_mnp_dbp2COOP.txt"
fi
echo `date +"%Y-%m-%d %H:%M:%S"` "Inizio export dati per COOP" >> $THIS_PATH/runDbc2COOP.log
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runDbc2COOPInitialize.sql $NUMERO_RIGHE_FILE $THIS_PATH>>$THIS_PATH/runDbc2COOPSQL.log
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore inizializzazione export dati per COOP" >> $THIS_PATH/runDbc2COOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/runDbc2COOP.log" >> $THIS_PATH/runDbc2COOP.log
exit -1
fi
ITERATION_NUMBER=$(awk -F";" '{print $1}' < $THIS_PATH/iteration_number.txt)
ITERATION_NUMBER_TODO=$(awk -F";" '{print $2}' < $THIS_PATH/iteration_number.txt)
HOST_SE_NPG_GMNP=$(cat ${MNP_PROP_FILE} | grep HOST_SE_NPG_GMNP | awk -F"=" '{print $2}')
REMOTEDIR_SE_NPG_GMNP=$(cat ${MNP_PROP_FILE} | grep REMOTEDIR_SE_NPG_GMNP | awk -F"=" '{print $2}')
USER_SE_NPG_GMNP=$(cat ${MNP_PROP_FILE} | grep USER_SE_NPG_GMNP | awk -F"=" '{print $2}')
SFTP_PRIVATEKEY_PATH=$(cat ${MNP_PROP_FILE} | grep SFTP_PRIVATEKEY_PATH | awk -F"=" '{print $2}')
while [ $ITERATION_NUMBER_TODO -le $ITERATION_NUMBER ] ;
do
echo `date +"%Y-%m-%d %H:%M:%S"` "Inizio iterazione $ITERATION_NUMBER_TODO di $ITERATION_NUMBER" >> $THIS_PATH/runDbc2COOP.log
DATE=`echo $(date +%Y%m%d%H%M%S )`
FILENAME_TXT="MNP_${DATE}.txt"
FILENAME_CTR="MNP_${DATE}.ctr"
echo `date +"%Y-%m-%d %H:%M:%S"` "Iterazione $ITERATION_NUMBER_TODO di $ITERATION_NUMBER inizio scrittura file $FILENAME_TXT" >> $THIS_PATH/runDbc2COOP.log
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runDbc2COOP.sql $NUMERO_RIGHE_FILE $THIS_PATH>>$THIS_PATH/runDbc2COOPSQL.log
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore scrittura file $FILENAME_TXT" >> $THIS_PATH/runDbc2COOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/runDbc2COOP.log" >> $THIS_PATH/runDbc2COOP.log
exit -1
fi
mv $THIS_PATH/tmp_mnp_dbp2COOP.txt $THIS_PATH/$LOCALDIR_DA_INVIARE/$FILENAME_TXT
touch $THIS_PATH/$LOCALDIR_DA_INVIARE/$FILENAME_CTR
echo `date +"%Y-%m-%d %H:%M:%S"` "Iterazione $ITERATION_NUMBER_TODO di $ITERATION_NUMBER fine scrittura file $FILENAME_TXT" >> $THIS_PATH/runDbc2COOP.log
echo `date +"%Y-%m-%d %H:%M:%S"` "Iterazione $ITERATION_NUMBER_TODO di $ITERATION_NUMBER inizio invio file $FILENAME_TXT" >> $THIS_PATH/runDbc2COOP.log
if [ "$INVIO_FILE_SFTP" = "YES" ] ; then
OUT=$(sftp -oIdentityFile=${SFTP_PRIVATEKEY_PATH} ${USER_SE_NPG_GMNP}@${HOST_SE_NPG_GMNP} << \
!
cd ${REMOTEDIR_SE_NPG_GMNP}
put ${THIS_PATH}/${LOCALDIR_DA_INVIARE}/${FILENAME_TXT}
exit
!)
echo "$OUT" >>$THIS_PATH/runDbc2COOPSFTP.log
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore invio file $FILENAME_TXT" >> $THIS_PATH/runDbc2COOP.log
mv $THIS_PATH/$LOCALDIR_DA_INVIARE/$FILENAME_TXT $THIS_PATH/$LOCALDIR_FALLITI/$FILENAME_TXT
mv $THIS_PATH/$LOCALDIR_DA_INVIARE/$FILENAME_CTR $THIS_PATH/$LOCALDIR_FALLITI/$FILENAME_CTR
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/runDbc2COOPSFTP.log" >> $THIS_PATH/runDbc2COOP.log
exit -1
fi
OUT=$(sftp -oIdentityFile=${SFTP_PRIVATEKEY_PATH} ${USER_SE_NPG_GMNP}@${HOST_SE_NPG_GMNP} << \
!
cd ${REMOTEDIR_SE_NPG_GMNP}
put ${THIS_PATH}/${LOCALDIR_DA_INVIARE}/${FILENAME_CTR}
exit
!)
echo "$OUT" >>$THIS_PATH/runDbc2COOPSFTP.log
if [ $? -ne 0 ]; then
echo `date +"%Y-%m-%d %H:%M:%S"` "Errore invio file $FILENAME_CTR" >> $THIS_PATH/runDbc2COOP.log
mv $THIS_PATH/$LOCALDIR_DA_INVIARE/$FILENAME_TXT $THIS_PATH/$LOCALDIR_FALLITI/$FILENAME_TXT
mv $THIS_PATH/$LOCALDIR_DA_INVIARE/$FILENAME_CTR $THIS_PATH/$LOCALDIR_FALLITI/$FILENAME_CTR
echo `date +"%Y-%m-%d %H:%M:%S"` "verificare errore in log $THIS_PATH/runDbc2COOPSFTP.log" >> $THIS_PATH/runDbc2COOP.log
exit -1
fi
fi
mv $THIS_PATH/$LOCALDIR_DA_INVIARE/$FILENAME_TXT $THIS_PATH/$LOCALDIR_INVIATI/$FILENAME_TXT
mv $THIS_PATH/$LOCALDIR_DA_INVIARE/$FILENAME_CTR $THIS_PATH/$LOCALDIR_INVIATI/$FILENAME_CTR
echo `date +"%Y-%m-%d %H:%M:%S"` "Iterazione $ITERATION_NUMBER_TODO di $ITERATION_NUMBER fine invio file $FILENAME_TXT" >> $THIS_PATH/runDbc2COOP.log
ITERATION_NUMBER_TODO=$(($ITERATION_NUMBER_TODO + 1))
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runDbc2COOPWorked.sql $THIS_PATH>>$THIS_PATH/runDbc2COOPSQL.log
done
echo `date +"%Y-%m-%d %H:%M:%S"` "Fine export dati per COOP" >> $THIS_PATH/runDbc2COOP.log
if [ -f "$THIS_PATH/iteration_number.txt" ] ; then
rm "$THIS_PATH/iteration_number.txt"
fi
if [ -f "$THIS_PATH/tmp_mnp_dbp2COOP.txt" ] ; then
rm "$THIS_PATH/tmp_mnp_dbp2COOP.txt"
fi
fi

View File

@@ -0,0 +1,31 @@
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_DBP2COOP D
SET D.FLAG_LAVORATO=2 --in lavorazione
WHERE D.FLAG_LAVORATO=0
and D.MSISDN in (
select MSISDN from (
SELECT C.MSISDN
, ROW_NUMBER() OVER (ORDER BY C.MSISDN) rno
FROM MNP_DBP2COOP C where C.FLAG_LAVORATO = 0)
WHERE rno <= &1);
--spool tmp_mnp_dbp2COOP.txt append; da usare se fare append
spool &2/tmp_mnp_dbp2COOP.txt;
SELECT 'telephone-number='''
||MSISDN
||''' result-info {routing-number='''||ROUTING_NUMBER
||'''};'
FROM MNP_DBP2COOP D
WHERE D.FLAG_LAVORATO=2 ORDER BY MSISDN;
spool off
/
EXIT

View File

@@ -0,0 +1,21 @@
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_DBP2COOP D
SET D.FLAG_LAVORATO=0 --da lavorare
WHERE D.FLAG_LAVORATO=2;
COMMIT;
spool &2/iteration_number.txt;
select ceil(count(l.MSISDN)/&1) || ';' || floor(((count(l.MSISDN) - t.WORKED)/&1) + 1) from MNP_DBP2COOP l,
(select count(*) as WORKED from MNP_DBP2COOP m where m.FLAG_LAVORATO = 0) t group by t.WORKED;
spool off
/
EXIT

View File

@@ -0,0 +1,17 @@
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_DBP2COOP D
SET D.FLAG_LAVORATO=1 --lavorati
WHERE D.FLAG_LAVORATO=2;
COMMIT;
/
EXIT

View File

@@ -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 YYYYMMDD "
exit -1
fi
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runRichiestaCessPort_Portati_COOP.sql $1 $2 >$THIS_PATH/runRichiestaCessPort.log
fi

View File

@@ -0,0 +1,13 @@
DECLARE
DATA_INIZIO DATE;
DATA_FINE DATE;
BEGIN
DATA_INIZIO := TO_DATE('&1','YYYYMMDD');
DATA_FINE := TO_DATE('&2','YYYYMMDD');
PKG_DBP_COOP.ESTR_RICH_CESS_PORT ( DATA_INIZIO, DATA_FINE );
COMMIT;
END;
/
exit

View File

@@ -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 YYYYMMDD "
exit -1
fi
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runRichiestaCess_Portati_COOP.sql $1 $2 >$THIS_PATH/runRichiestaCess.log
fi

View File

@@ -0,0 +1,13 @@
DECLARE
DATA_INIZIO DATE;
DATA_FINE DATE;
BEGIN
DATA_INIZIO := TO_DATE('&1','YYYYMMDD');
DATA_FINE := TO_DATE('&2','YYYYMMDD');
PKG_DBP_COOP.ESTR_RICHIESTA_CESS ( DATA_INIZIO, DATA_FINE );
COMMIT;
END;
/
exit

View File

@@ -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 YYYYMMDD "
exit -1
fi
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runRichiestaPorting_Portati_COOP.sql $1 $2 >$THIS_PATH/runRichiestaPorting.log
fi

View File

@@ -0,0 +1,19 @@
-- 2022 C05 MNP_RU_XXX
-- full export of porting history to OLOs
-- CREATE PKG_DBP_COOP to export of porting history to OLOs
DECLARE
DATA_INIZIO DATE;
DATA_FINE DATE;
BEGIN
DATA_INIZIO := TO_DATE('&1','YYYYMMDD');
DATA_FINE := TO_DATE('&2','YYYYMMDD');
PKG_DBP_COOP.ESTR_RICHIESTA_PORTING_HIST ( DATA_INIZIO, DATA_FINE );
COMMIT;
PKG_DBP_COOP.ESTR_RICHIESTA_PORTING ( DATA_INIZIO, DATA_FINE );
COMMIT;
END;
/
exit

View File

@@ -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 YYYYMMDD "
exit -1
fi
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runRichiestaRec_Portati_COOP.sql $1 $2 >$THIS_PATH/runRichiestaRec.log
fi

View File

@@ -0,0 +1,19 @@
-- 2022 C05 MNP_RU_XXX
-- full export of porting history to OLOs
-- CREATE PKG_DBP_COOP to export of porting history to OLOs
DECLARE
DATA_INIZIO DATE;
DATA_FINE DATE;
BEGIN
DATA_INIZIO := TO_DATE('&1','YYYYMMDD');
DATA_FINE := TO_DATE('&2','YYYYMMDD');
PKG_DBP_COOP.ESTR_RICHIESTA_REC_HIST ( DATA_INIZIO, DATA_FINE );
COMMIT;
PKG_DBP_COOP.ESTR_RICHIESTA_REC ( DATA_INIZIO, DATA_FINE );
COMMIT;
END;
/
exit

View File

@@ -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 YYYYMMDD "
exit -1
fi
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $THIS_PATH/runRichiesta_Portati_COOP.sql $1 $2 >$THIS_PATH/runRichiesta.log
fi

View File

@@ -0,0 +1,19 @@
-- 2022 C05 MNP_RU_XXX
-- full export of porting history to OLOs
-- CREATE PKG_DBP_COOP to export of porting history to OLOs
DECLARE
DATA_INIZIO DATE;
DATA_FINE DATE;
BEGIN
DATA_INIZIO := TO_DATE('&1','YYYYMMDD');
DATA_FINE := TO_DATE('&2','YYYYMMDD');
PKG_DBP_COOP.ESTR_RICHIESTA_HIST ( DATA_INIZIO, DATA_FINE );
COMMIT;
PKG_DBP_COOP.ESTR_RICHIESTA ( DATA_INIZIO, DATA_FINE );
COMMIT;
END;
/
exit

View File

@@ -0,0 +1,17 @@
CREATE TABLE MNP_DBP2COOP
(
MSISDN VARCHAR2(20 BYTE) NOT NULL,
CODICE_OPERATORE_RECIPIENT VARCHAR2(4 BYTE),
ROUTING_NUMBER VARCHAR2(10 BYTE) DEFAULT NULL,
DATA_CUT_OVER DATE,
DATA_ESTRAZIONE DATE NOT NULL,
FLAG_LAVORATO NUMBER(1) DEFAULT 0 NOT NULL
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING;
ALTER TABLE MNP_DBP2COOP ADD CONSTRAINT PK_MNP_DBP2COOP PRIMARY KEY (MSISDN) USING INDEX TABLESPACE TAB_IDX_MEDIUM;

View File

@@ -0,0 +1,7 @@
CREATE TABLE MNP_DBP2COOP_DATE
(
START_DATE VARCHAR2(8 BYTE),
END_DATE VARCHAR2(8 BYTE),
FINAL_DATE VARCHAR2(8 BYTE)
);

View File

@@ -0,0 +1,142 @@
-- Execute as user MNP
-- 2022 C05 MNP_RU_XXX
-- full export of porting history to OLOs
-- Full extract for DNs in test set, with name of table of origin.
SELECT * FROM (
SELECT 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.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
, 'MNP_GESTIONE_RICHIESTA' AS TABELLA_ORIGINE
FROM MNP_GESTIONE_RICHIESTA MGR
WHERE MGR.MSISDN IN (:X)
AND MGR.STATO = 16
) m_cur_bulk
)
WHERE rnum = 1
UNION ALL
SELECT 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.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
, 'MNP_GESTIONE_RICHIESTA_REC' AS TABELLA_ORIGINE
FROM MNP_GESTIONE_RICHIESTA_REC MGR
WHERE MGR.MSISDN IN (:X)
AND MGR.STATO = 12
) m_cur_bulk
)
WHERE rnum = 1
UNION ALL
SELECT 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.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 (:X)
AND MGR.STATO = 6
) m_cur_bulk
)
WHERE rnum = 1
UNION ALL
SELECT 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.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
, '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 (:X)
AND ( MOP.PREFIX=SUBSTR(MGR.MSISDN,3,3) OR MOP.PREFIX=SUBSTR(MGR.MSISDN,3,4) )
AND MGR.STATO = '2'
AND O.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT
) m_cur_bulk
)
WHERE rnum = 1
UNION ALL
SELECT 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.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
, '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 (:X)
AND (MOP.PREFIX = SUBSTR(MGR.MSISDN,3,3) OR MOP.PREFIX = SUBSTR(MGR.MSISDN,3,4))
AND MGR.STATO = '3'
AND O.DESC_OLO = MGR.CODICE_OPERATORE_RECIPIENT
) m_cur_bulk
)
WHERE rnum = 1
UNION ALL
SELECT 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.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
, 'HIST_GESTIONE_RICHIESTA' AS TABELLA_ORIGINE
FROM HIST_GESTIONE_RICHIESTA MGR
WHERE MGR.MSISDN IN (:X)
AND MGR.STATO = 16
) m_cur_bulk
)
WHERE rnum = 1
UNION ALL
SELECT 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.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
, 'HIST_GESTIONE_RICHIESTA_REC' AS TABELLA_ORIGINE
FROM HIST_GESTIONE_RICHIESTA_REC MGR
WHERE MGR.MSISDN IN (:X)
AND MGR.STATO = 12
) m_cur_bulk
)
WHERE rnum = 1
UNION ALL
SELECT 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.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 (:X)
AND MGR.STATO = 6
) m_cur_bulk
)
WHERE rnum = 1
) ORDER BY MSISDN, DATA_CUT_OVER;

View File

@@ -0,0 +1,481 @@
-- Execute as user MNP
-- 2022 C05 MNP_RU_XXX
-- full export of porting history to OLOs
-- DDL 2/2
-- CREATE PKG_DBP_COOP to export of porting history to OLOs
-- Per le CESSAZIONI riportare come CODICE_OPERATORE_RECIPIENT
-- l'OLO proprietario originale del DN (come da prefisso)
CREATE OR REPLACE PACKAGE PKG_DBP_COOP 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_COOP;
/
CREATE OR REPLACE PACKAGE BODY PKG_DBP_COOP AS
-- ===============================================================================
-- 2022 C05 MNP_RU_XXX 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_DBP2COOP m_tgt
USING (
SELECT 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.MSISDN AS MSISDN
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
, MO.ROUTING_NUMBER 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 INNER JOIN MNP_OLO MO ON MO.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT
WHERE MGR.MSISDN IS NOT NULL AND MO.ROUTING_NUMBER IS NOT NULL
AND MGR.DATA_CUT_OVER_CALC BETWEEN in_data_inizio AND in_data_fine
AND STATO = 16 --ESPLETATA
) m_cur_bulk
)
WHERE rnum = 1
) m_cur
ON (m_cur.MSISDN = m_tgt.MSISDN)
WHEN MATCHED THEN
UPDATE SET
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 (
MSISDN
, CODICE_OPERATORE_RECIPIENT
, ROUTING_NUMBER
, DATA_CUT_OVER
, DATA_ESTRAZIONE
, FLAG_LAVORATO
) VALUES (
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;
-- ===============================================================================
-- 2022 C05 MNP_RU_XXX 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_DBP2COOP m_tgt
USING (
SELECT 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.MSISDN AS MSISDN
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
, MO.ROUTING_NUMBER 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 INNER JOIN MNP_OLO MO ON MO.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT
WHERE MGR.MSISDN IS NOT NULL AND MO.ROUTING_NUMBER IS NOT NULL
AND MGR.DATA_CUT_OVER_AOM BETWEEN in_data_inizio AND in_data_fine
AND STATO = 12 --EVASA
) m_cur_bulk
)
WHERE rnum = 1
) m_cur
ON (m_cur.MSISDN = m_tgt.MSISDN)
WHEN MATCHED THEN
UPDATE SET
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 (
MSISDN
, CODICE_OPERATORE_RECIPIENT
, ROUTING_NUMBER
, DATA_CUT_OVER
, DATA_ESTRAZIONE
, FLAG_LAVORATO
) VALUES (
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;
-- ===============================================================================
-- 2022 C05 MNP_RU_XXX 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_DBP2COOP m_tgt
USING (
SELECT 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.MSISDN AS MSISDN
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
, MO.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_PORTING MGR INNER JOIN MNP_OLO MO ON MO.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT
WHERE MGR.MSISDN IS NOT NULL AND MO.ROUTING_NUMBER IS NOT NULL
AND MGR.DATA_CUT_OVER BETWEEN in_data_inizio AND in_data_fine
AND MGR.STATO = 6 -- ESPLETATA
) m_cur_bulk
)
WHERE rnum = 1
) m_cur
ON (m_cur.MSISDN = m_tgt.MSISDN)
WHEN MATCHED THEN
UPDATE SET
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 (
MSISDN
, CODICE_OPERATORE_RECIPIENT
, ROUTING_NUMBER
, DATA_CUT_OVER
, DATA_ESTRAZIONE
, FLAG_LAVORATO
) VALUES (
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;
-- ===============================================================================
-- 2022 C05 MNP_RU_XXX Procedura #4/8
-- PROCESSO CESSAZIONI PORTING
-- STATO 4 = CESSATA
-- 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_RICH_CESS_PORT(in_data_inizio IN DATE, in_data_fine IN DATE) IS
BEGIN
MERGE INTO MNP_DBP2COOP m_tgt
USING (
SELECT 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.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 MO.ROUTING_NUMBER 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='2' -- CESSATA
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
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 (
MSISDN
, CODICE_OPERATORE_RECIPIENT
, ROUTING_NUMBER
, DATA_CUT_OVER
, DATA_ESTRAZIONE
, FLAG_LAVORATO
) VALUES (
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;
-- ===============================================================================
-- 2022 C05 MNP_RU_XXX 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_DBP2COOP m_tgt
USING (
SELECT 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.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 MO.ROUTING_NUMBER 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='3' -- CESSATA
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
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 (
MSISDN
, CODICE_OPERATORE_RECIPIENT
, ROUTING_NUMBER
, DATA_CUT_OVER
, DATA_ESTRAZIONE
, FLAG_LAVORATO
) VALUES (
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;
-- ===============================================================================
-- 2022 C05 MNP_RU_XXX 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_DBP2COOP m_tgt
USING (
SELECT 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.MSISDN AS MSISDN
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
, MO.ROUTING_NUMBER 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 INNER JOIN MNP_OLO MO ON MO.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT
WHERE MGR.MSISDN IS NOT NULL AND MO.ROUTING_NUMBER IS NOT NULL
AND MGR.DATA_CUT_OVER_CALC BETWEEN in_data_inizio AND in_data_fine
AND MGR.STATO = 16 --ESPLETATA
) m_cur_bulk
)
WHERE rnum = 1
) m_cur
ON (m_cur.MSISDN = m_tgt.MSISDN)
WHEN MATCHED THEN
UPDATE SET
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 (
MSISDN
, CODICE_OPERATORE_RECIPIENT
, ROUTING_NUMBER
, DATA_CUT_OVER
, DATA_ESTRAZIONE
, FLAG_LAVORATO
) VALUES (
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;
-- ===============================================================================
-- 2022 C05 MNP_RU_XXX 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_DBP2COOP m_tgt
USING (
SELECT 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.MSISDN AS MSISDN
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
, MO.ROUTING_NUMBER 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 INNER JOIN MNP_OLO MO ON MO.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT
WHERE MGR.MSISDN IS NOT NULL AND MO.ROUTING_NUMBER IS NOT NULL
AND MGR.DATA_CUT_OVER_AOM BETWEEN in_data_inizio AND in_data_fine
AND MGR.STATO = 12 --EVASA
) m_cur_bulk
)
WHERE rnum = 1
) m_cur
ON (m_cur.MSISDN = m_tgt.MSISDN)
WHEN MATCHED THEN
UPDATE SET
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 (
MSISDN
, CODICE_OPERATORE_RECIPIENT
, ROUTING_NUMBER
, DATA_CUT_OVER
, DATA_ESTRAZIONE
, FLAG_LAVORATO
) VALUES (
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;
-- ===============================================================================
-- 2022 C05 MNP_RU_XXX 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_DBP2COOP m_tgt
USING (
SELECT 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.MSISDN AS MSISDN
, MGR.CODICE_OPERATORE_RECIPIENT AS CODICE_OPERATORE_RECIPIENT
, MO.ROUTING_NUMBER AS ROUTING_NUMBER
, MGR.DATA_CUT_OVER AS DATA_CUT_OVER
, SYSDATE AS DATA_ESTRAZIONE
, 0 AS FLAG_LAVORATO
FROM HIST_GESTIONE_RICHIESTAPORTING MGR INNER JOIN MNP_OLO MO ON MO.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT
WHERE MGR.MSISDN IS NOT NULL AND MO.ROUTING_NUMBER IS NOT NULL
AND MGR.DATA_CUT_OVER BETWEEN in_data_inizio AND in_data_fine
AND MGR.STATO = 6 -- ESPLETATA
) m_cur_bulk
)
WHERE rnum = 1
) m_cur
ON (m_cur.MSISDN = m_tgt.MSISDN)
WHEN MATCHED THEN
UPDATE SET
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 (
MSISDN
, CODICE_OPERATORE_RECIPIENT
, ROUTING_NUMBER
, DATA_CUT_OVER
, DATA_ESTRAZIONE
, FLAG_LAVORATO
) VALUES (
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_COOP;
/

View File

@@ -0,0 +1,18 @@
-- 2022 C05 MNP_RU_XXX
--execute as MNP
--spool /mnpapp/log/script/dbc_export_coop.log;
-----------------------------
--CREATE/MODIFY OBJECT
@@DDL_mnp_dbp2coop.sql
@@DDL_mnp_dbp2coop_date.sql
@@MNP_DDL_PKG_DBP_COOP.sql
-----------------------------
--INSERT/UPDATE DATA
--@@dbcDML.sql
-----------------------------
commit;
spool off;

View File

@@ -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 lobbligo regolamentare Delibera AGCOM 147/11/CIR
che impone di fornire i dati alloperatore 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;

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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;
/

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
/

View File

@@ -0,0 +1,63 @@
#!/usr/bin/ksh
#set -x
###########################################################
# Progetto: MNP
# $1 modalita -- 1 disattivo, 0 attivo
#
# $2 operatore
#
###########################################################
THIS_PATH=`dirname $0`
THIS=`basename $0 .sh`
. $THIS_PATH/setEnv.sh
if [ $? -eq 0 ]
then
# ESECUZIONE SCRIPT
LOG=$MNP_LOG_SCRIPT_HOME/$THIS.log
if [[ "$#" -gt 0 ]]
then
MODALITA=$1
OPERATORE=$2
#check <modalita>
if [ $MODALITA -eq 0 ]||[ $MODALITA -eq 1 ]
then
#start procedure
echo '*******************************' >> $LOG
echo '**' $(date) '**' INIZIO AGGIORNAMENTO FIFO >> $LOG
if [[ "$#" -eq 1 ]]
then
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus ${MNP_SCRIPT_SQL_HOME}/update_gestione_fifo.sql $MODALITA '-1' >> $LOG 2>&1
else
#check <operatore>
if [ $OPERATORE -eq 2 ] || [ $OPERATORE -eq 4 ] || [ $OPERATORE -eq 7 ]
then
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus ${MNP_SCRIPT_SQL_HOME}/update_gestione_fifo.sql $MODALITA $OPERATORE >> $LOG 2>&1
else
echo 'error: invalid parameter <operatore>'
exit 1
fi
fi
echo '**' $(date) '**' FINE AGGIORNAMENTO FIFO >> $LOG
else
echo 'error: invalid parameter <modalita>'
exit 1
fi
else
echo 'usage: Gestione_FIFO.sh <modalita> [<operatore>]'
fi
else
echo 'SCRIPT NON ESEGUITO'
exit 1
fi
exit 0

View File

@@ -0,0 +1,31 @@
#
# Shell Script per infasamento dati utili alla produzione dei file una tantum KS12 2015.
#
#
#!/usr/bin/ksh
#
#set -x
THIS_PATH=`dirname $0`
. ../setEnv.sh
if [ $? -eq 0 ]
then
# ESECUZIONE SCRIPT
#directory in cui sono presenti gli script sql
SQL=$THIS_PATH/sql
#directory in cui scrivere i files di Log
LOG=$MNP_LOG_SCRIPT_HOME
APPLICATION_LOG=$MNP_LOG_APP_HOME
file_di_log=infasamento_cessazione_KS12_2015.log
echo $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/01_infasamento_cessazione_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/01_infasamento_cessazione_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
fi
echo "Processo terminato" >> $APPLICATION_LOG/$file_di_log 2>&1
echo "Processo terminato"

View File

@@ -0,0 +1,31 @@
#
# Shell Script per arricchimento dati utili alla produzione dei file una tantum KS12 2015.
#
#
#!/usr/bin/ksh
#
#set -x
THIS_PATH=`dirname $0`
. ../setEnv.sh
if [ $? -eq 0 ]
then
# ESECUZIONE SCRIPT
#directory in cui sono presenti gli script sql
SQL=$THIS_PATH/sql
#directory in cui scrivere i files di Log
LOG=$MNP_LOG_SCRIPT_HOME
APPLICATION_LOG=$MNP_LOG_APP_HOME
file_di_log=arricchimento_cessazione_KS12_2015.log
echo $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/02_arricchimento_cessazione_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/02_arricchimento_cessazione_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
fi
echo "Processo terminato" >> $APPLICATION_LOG/$file_di_log 2>&1
echo "Processo terminato"

View File

@@ -0,0 +1,31 @@
#
# Shell Script per la creazione del file delle cessazioni per MSP ()una tantum KS12 2015).
#
#
#!/usr/bin/ksh
#
#set -x
THIS_PATH=`dirname $0`
. ../setEnv.sh
if [ $? -eq 0 ]
then
# ESECUZIONE SCRIPT
#directory in cui sono presenti gli script sql
SQL=$THIS_PATH/sql
#directory in cui scrivere i files di Log
LOG=$MNP_LOG_SCRIPT_HOME
APPLICATION_LOG=$MNP_LOG_APP_HOME
file_di_log=crea_una_tantum_MSP.log
echo $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/03_crea_una_tantum_MSP_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/03_crea_una_tantum_MSP_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
fi
echo "Processo terminato" >> $APPLICATION_LOG/$file_di_log 2>&1
echo "Processo terminato"

View File

@@ -0,0 +1,31 @@
#
# Shell Script per la creazione del file delle cessazioni per MSC (una tantum KS12 2015).
#
#
#!/usr/bin/ksh
#
#set -x
THIS_PATH=`dirname $0`
. ../setEnv.sh
if [ $? -eq 0 ]
then
# ESECUZIONE SCRIPT
#directory in cui sono presenti gli script sql
SQL=$THIS_PATH/sql
#directory in cui scrivere i files di Log
LOG=$MNP_LOG_SCRIPT_HOME
APPLICATION_LOG=$MNP_LOG_APP_HOME
file_di_log=crea_una_tantum_MSC.log
echo $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/04_crea_una_tantum_MSC_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/04_crea_una_tantum_MSC_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
fi
echo "Processo terminato" >> $APPLICATION_LOG/$file_di_log 2>&1
echo "Processo terminato"

View File

@@ -0,0 +1,32 @@
#
# Shell Script per la creazione del file delle cessazioni definitive
# per DWH-CONSENSO e CCRMWEB (una tantum KS12 2015).
#
#
#!/usr/bin/ksh
#
#set -x
THIS_PATH=`dirname $0`
. ../setEnv.sh
if [ $? -eq 0 ]
then
# ESECUZIONE SCRIPT
#directory in cui sono presenti gli script sql
SQL=$THIS_PATH/sql
#directory in cui scrivere i files di Log
LOG=$MNP_LOG_SCRIPT_HOME
APPLICATION_LOG=$MNP_LOG_APP_HOME
file_di_log=crea_una_tantum_MSC.log
echo $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/05_crea_una_tantum_cess_def_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/05_crea_una_tantum_cess_def_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
fi
echo "Processo terminato" >> $APPLICATION_LOG/$file_di_log 2>&1
echo "Processo terminato"

View File

@@ -0,0 +1,32 @@
#
# Shell Script per la creazione del file delle cessazioni definitive
# per ICM2 (una tantum KS12 2015).
#
#
#!/usr/bin/ksh
#
#set -x
THIS_PATH=`dirname $0`
. ../setEnv.sh
if [ $? -eq 0 ]
then
# ESECUZIONE SCRIPT
#directory in cui sono presenti gli script sql
SQL=$THIS_PATH/sql
#directory in cui scrivere i files di Log
LOG=$MNP_LOG_SCRIPT_HOME
APPLICATION_LOG=$MNP_LOG_APP_HOME
file_di_log=crea_una_tantum_MSC.log
echo $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/06_crea_una_tantum_cess_def_ICM2_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/06_crea_una_tantum_cess_def_ICM2_KS12_2015.sql >> $APPLICATION_LOG/$file_di_log 2>&1
fi
echo "Processo terminato" >> $APPLICATION_LOG/$file_di_log 2>&1
echo "Processo terminato"

View File

@@ -0,0 +1,46 @@
DECLARE
RetVal number;
V_DATA_CURR DATE;
V_DATA_CUT_OVER date;
V_RECIPIENT_NEW varchar2(4);
V_ID_RICHIESTA varchar2(15);
V_PROCESSO varchar2(1);
BEGIN
DBMS_OUTPUT.put_line ('START DATE: '||sysdate);
-- INSERIMENTO CESSAZIONI SENZA RECIPIENT SUCCESSIVO DA TABELLE STORICO E ONLINE
INSERT INTO MNP_CESSAZIONI_TEMP (NUMERO_TELEFONO, DATA_CESSAZIONE_MNP, AOM_CESSAZIONE_MNP, COD_PRE_POST)
select D.MSISDN, D.DATA_CUT_OVER_EFF, D.CODICE_OPERATORE_REC_EFF, D.CODICE_PRE_POST_PAGATO
from hist_gestione_richiesta D
WHERE D.STATO = 16
AND D.CODICE_OPERATORE_DON_EFF = 'TIMG'
AND D.TIPO_CLIENTE = 'CO'
AND D.DATARICEZIONERICHIESTA >= TO_DATE('01122010','ddMMyyyy')
AND D.DATARICEZIONERICHIESTA <= TO_DATE('31122011','ddMMyyyy')
AND D.MSISDN not IN (SELECT MSISDN
FROM hist_gestione_richiesta_rec HR
WHERE HR.STATO = 12
AND HR.DATA_CUT_OVER_EFF > D.DATA_CUT_OVER_EFF
AND HR.DATARICEZIONERICHIESTA > D.DATARICEZIONERICHIESTA
AND HR.MSISDN = D.MSISDN)
AND D.MSISDN not IN (SELECT MSISDN
FROM mnp_gestione_richiesta_rec R
WHERE R.STATO = 12
AND R.DATA_CUT_OVER_EFF > D.DATA_CUT_OVER_EFF
AND R.MSISDN = D.MSISDN)
UNION
select D.MSISDN, D.DATA_CUT_OVER_EFF, D.CODICE_OPERATORE_REC_EFF, D.CODICE_PRE_POST_PAGATO
from mnp_gestione_richiesta D
WHERE D.STATO = 16
AND D.CODICE_OPERATORE_DON_EFF = 'TIMG'
AND D.TIPO_CLIENTE = 'CO'
AND D.MSISDN not IN (SELECT MSISDN
FROM mnp_gestione_richiesta_rec R
WHERE STATO = 12
AND R.DATA_CUT_OVER_EFF > D.DATA_CUT_OVER_EFF
AND R.MSISDN = D.MSISDN);
COMMIT;
DBMS_OUTPUT.put_line ('END DATE: '||sysdate);
END;
/

View File

@@ -0,0 +1,77 @@
DECLARE
RetVal number;
V_DATA_CURR DATE;
V_DATA_CUT_OVER date;
V_RECIPIENT_NEW varchar2(4);
V_ID_RICHIESTA varchar2(23);
V_PROCESSO varchar2(1);
BEGIN
DBMS_OUTPUT.put_line ('START DATE: '||sysdate);
-- AGGIORNAMENTO DEI CAMPI PER LE TERZE PARTI O CESSAZIONI DEFINITIVE
FOR R_VAR_MSISDN IN
( SELECT * FROM MNP_CESSAZIONI_TEMP WHERE FLAG_LAVORATO = 0 )
LOOP
BEGIN
V_ID_RICHIESTA := NULL;
V_DATA_CUT_OVER := NULL;
V_PROCESSO := NULL;
V_RECIPIENT_NEW := NULL;
-- PARAM 1 (IN): NUMERO_TELEFONO
-- PARAM 2 (OUT): ID_RICHIESTA
-- PARAM 3 (OUT): DATA_RICEZIONE_RICHIESTA
-- PARAM 4 (OUT): DATA_CUT_OVER
-- PARAM 5 (OUT): PROCESSO
-- PARAM 6 (OUT): AOM_RECIPIENT
IF (R_VAR_MSISDN.DATA_CESSAZIONE_MNP >= TO_DATE('01012012','ddMMyyyy') ) THEN
RetVal := MNP.F_CERCA_ULTIMO_PROCESSO ( R_VAR_MSISDN.NUMERO_TELEFONO, V_ID_RICHIESTA, V_DATA_CURR, V_DATA_CUT_OVER, V_PROCESSO, V_RECIPIENT_NEW );
--DBMS_OUTPUT.put_line ('NUMERO ['||R_VAR_MSISDN.NUMERO_TELEFONO||']: '||R_VAR_MSISDN.DATA_CESSAZIONE_MNP||' - dco '||V_DATA_CUT_OVER);
ELSE
RetVal := MNP.F_CERCA_ULTIMO_PROCESSO_HIST ( R_VAR_MSISDN.NUMERO_TELEFONO, V_ID_RICHIESTA, V_DATA_CURR, V_DATA_CUT_OVER, V_PROCESSO, V_RECIPIENT_NEW );
--DBMS_OUTPUT.put_line ('HIST NUMERO ['||R_VAR_MSISDN.NUMERO_TELEFONO||']: '||R_VAR_MSISDN.DATA_CESSAZIONE_MNP||' - dco '||V_DATA_CUT_OVER);
END IF;
IF RetVal = 0 THEN
IF V_PROCESSO = 'C' OR V_PROCESSO = 'K' THEN
UPDATE MNP_CESSAZIONI_TEMP
SET DATA_CESS_DEF = V_DATA_CUT_OVER,
FLAG_CESS_DEF = 1,
FLAG_LAVORATO = 1
WHERE NUMERO_TELEFONO = R_VAR_MSISDN.NUMERO_TELEFONO;
ELSIF V_PROCESSO = 'P' THEN
DBMS_OUTPUT.put_line ('PROCESSO TERZE PARTI ['||R_VAR_MSISDN.NUMERO_TELEFONO||']: - dco ['||V_DATA_CUT_OVER||'] dataricezionerichiesta ['||V_DATA_CURR||']');
UPDATE MNP_CESSAZIONI_TEMP
SET DATA_TP = V_DATA_CUT_OVER,
AOM_TP = V_RECIPIENT_NEW,
FLAG_LAVORATO = 1
WHERE NUMERO_TELEFONO = R_VAR_MSISDN.NUMERO_TELEFONO;
ELSE
UPDATE MNP_CESSAZIONI_TEMP
SET FLAG_LAVORATO = 1
WHERE NUMERO_TELEFONO = R_VAR_MSISDN.NUMERO_TELEFONO;
END IF;
ELSE
UPDATE MNP_CESSAZIONI_TEMP
SET FLAG_LAVORATO = -1
WHERE NUMERO_TELEFONO = R_VAR_MSISDN.NUMERO_TELEFONO;
END IF;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
V_DATA_CUT_OVER := NULL;
V_RECIPIENT_NEW := NULL;
--
UPDATE MNP_CESSAZIONI_TEMP
SET FLAG_LAVORATO = 2
WHERE NUMERO_TELEFONO = R_VAR_MSISDN.NUMERO_TELEFONO;
COMMIT;
END;
END LOOP;
DBMS_OUTPUT.put_line ('END DATE: '||sysdate);
END;
/

View File

@@ -0,0 +1,14 @@
SET head off
SET pages 0
SET feedback off
SET linesize 53
SET trimspool on
COLUMN spoolname new_value spoolname
SELECT '/mnpapp/gwmnp/FTPOUT/MNP_MSP_DONOR_5ANNI_'||TO_CHAR(sysdate, 'yyyymmdd')||'.csv' spoolname FROM dual;
SPOOL '&spoolname'
SELECT SUBSTR(NUMERO_TELEFONO,3)||';'||TO_CHAR(DATA_CESSAZIONE_MNP, 'yyyy-mm-dd')||';'||AOM_CESSAZIONE_MNP||';'||AOM_TP||';'||TO_CHAR(DATA_TP, 'yyyy-mm-dd')||';'||COD_PRE_POST FROM MNP_CESSAZIONI_TEMP WHERE COD_PRE_POST='PRP' AND FLAG_CESS_DEF = 0 AND FLAG_LAVORATO = 1;
SPOOL off;

View File

@@ -0,0 +1,14 @@
SET head off
SET pages 0
SET feedback off
SET linesize 53
SET trimspool on
COLUMN spoolname new_value spoolname
SELECT '/mnpapp/gwmnp/FTPOUT/MNP_MSC_DONOR_5ANNI_'||TO_CHAR(sysdate, 'yyyymmdd')||'.csv' spoolname FROM dual;
SPOOL '&spoolname'
SELECT SUBSTR(NUMERO_TELEFONO,3)||';'||TO_CHAR(DATA_CESSAZIONE_MNP, 'yyyy-mm-dd')||';'||AOM_CESSAZIONE_MNP||';'||AOM_TP||';'||TO_CHAR(DATA_TP, 'yyyy-mm-dd')||';'||'ABB' FROM MNP_CESSAZIONI_TEMP WHERE COD_PRE_POST='POP' AND FLAG_CESS_DEF = 0 AND FLAG_LAVORATO = 1;
SPOOL off;

View File

@@ -0,0 +1,14 @@
SET head off
SET pages 0
SET feedback off
SET linesize 31
SET trimspool on
COLUMN spoolname new_value spoolname
SELECT '/mnpapp/gwmnp/FTPOUT/MNP_CESSDEF_5ANNI_'||TO_CHAR(sysdate, 'yyyymmdd')||'.csv' spoolname FROM dual;
SPOOL '&spoolname'
SELECT SUBSTR(NUMERO_TELEFONO,3)||';'||TO_CHAR(DATA_CESS_DEF, 'yyyy-mm-dd')||';'||AOM_CESSAZIONE_MNP FROM MNP_CESSAZIONI_TEMP WHERE FLAG_CESS_DEF = 1 AND FLAG_LAVORATO = 1;
SPOOL off;

View File

@@ -0,0 +1,14 @@
SET head off
SET pages 0
SET feedback off
SET linesize 31
SET trimspool on
COLUMN spoolname new_value spoolname
SELECT '/mnpapp/gwmnp/FTPOUT/MNP_ICM2_CESS_DEF_PINF_'||TO_CHAR(sysdate, 'yyyymmdd')||'.csv' spoolname FROM dual;
SPOOL '&spoolname'
SELECT SUBSTR(NUMERO_TELEFONO,3)||';'||TO_CHAR(DATA_CESS_DEF, 'yyyy-mm-dd')||';'||AOM_CESSAZIONE_MNP FROM MNP_CESSAZIONI_TEMP WHERE FLAG_CESS_DEF = 1 AND FLAG_LAVORATO = 1 AND DATA_CESS_DEF >= sysdate-31;
SPOOL off;

View File

@@ -0,0 +1,12 @@
#!/bin/ksh
THIS_PATH=`dirname $0`
check_node=`$THIS_PATH/TestNodo.sh`
if [ $? -eq 0 ]
then
echo "Nodo abilitato ad eseguire lo script"
. $THIS_PATH/javaExec_unix.sh it.valueteam.crontab.processexecutor.client.SimpleRunProcess $1 $2 $3 $4 $5
else
echo "(WARNING) Nodo non abilitato ad eseguire script"
fi

View File

@@ -0,0 +1,26 @@
#!/bin/ksh
MASTER_NODE="dbcesefep1"
THIS_NODE=`hostname`
MASTER_ONLINE="-"$(/usr/es/sbin/cluster/utilities/clRGinfo | grep $MASTER_NODE | grep ONLINE | awk '{print $NF}')
if [ "-"$FROM_GUI_DBC = "-true" ]
then
exit 0
else
if [ "-"$MASTER_NODE = $MASTER_ONLINE ]
then
if [ $THIS_NODE = $MASTER_NODE ]
then
exit 0
else
exit 1
fi
else
if [ $THIS_NODE = $MASTER_NODE ]
then
exit 1
else
exit 0
fi
fi
fi

View File

@@ -0,0 +1,161 @@
CREATE OR REPLACE procedure "DBCGO"."RECUPERO_DATI_DBCGO" IS
n_rec integer := 0;
CURSOR cur_recipient is
SELECT ric_rec.ID_RICHIESTA AS idRichiesta,
ric_rec.CODICE_OPERATORE_DON_EFF AS donorEffettivo,
ric_rec.CODICE_OPERATORE_Donating AS donating
FROM mnp.MNP_GESTIONE_RICHIESTA_REC@mnp ric_rec
WHERE ric_rec.ID_RICHIESTA IN
(
'100000000016131405',
'100000000016627720',
'100000000016627726',
'100000000016627740',
'100000000016627757',
'100000000016627763',
'100000000016627801',
'100000000016627838',
'100000000016627856',
'100000000016627870',
'100000000016627882',
'100000000016627903',
'100000000016627906',
'100000000016627924',
'100000000016628044',
'100000000016628202',
'100000000016628646',
'100000000016628790',
'100000000016628963',
'100000000016628964',
'100000000016628965',
'100000000016628966',
'100000000016628968',
'100000000016628978',
'100000000016628979',
'100000000016628980',
'100000000016628981',
'100000000016628982',
'100000000016628983',
'100000000016628984',
'100000000016628985',
'100000000016629015',
'100000000016629016',
'100000000016629017',
'100000000016629018',
'100000000016629019',
'100000000016629020',
'100000000016629021',
'100000000016629023',
'100000000016629578',
'100000000016630795',
'100000000016631043',
'100000000016631539',
'100000000016631594',
'100000000016631612',
'100000000016631639',
'100000000016631786',
'100000000016631871',
'100000000016631962',
'100000000016631990',
'100000000016632070',
'100000000016632384',
'100000000016632428',
'100000000016632483',
'100000000016632562',
'100000000016632576',
'100000000016632623',
'100000000016632689',
'100000000016632693',
'100000000016632710',
'100000000016632722',
'100000000016632729',
'100000000016632783',
'100000000016632836',
'100000000016632951',
'100000000016633009',
'100000000016633028',
'100000000016633059',
'100000000016633073',
'100000000016633288',
'100000000016633300',
'100000000016633376',
'100000000016633427',
'100000000016633461',
'100000000016633491',
'100000000016633620',
'100000000016633628',
'100000000016633634',
'100000000016633646',
'100000000016642436',
'100000000016642437',
'100000000016642438',
'200000000016628527',
'200000000016629615',
'200000000016629827',
'200000000016629828',
'200000000016629840',
'200000000016629845',
'200000000016629849',
'200000000016629888',
'200000000016629891',
'200000000016629936',
'200000000016629954',
'200000000016629971',
'200000000016630067',
'200000000016630135',
'200000000016630441',
'200000000016630461',
'200000000016630517',
'200000000016630794',
'200000000016630796',
'200000000016630797',
'200000000016630819',
'200000000016631726',
'200000000016632879',
'200000000016632896',
'W00000000016630996',
'W00000000016631246',
'W00000000016631254',
'W00000000016631301',
'W00000000016631411',
'W00000000016632875',
'W00000000016633083',
'W00000000016633161',
'W00000000016633236'
);
BEGIN
DBMS_OUTPUT.put_line ('recupero_dati_DBCGO: INIZIO PROCEDURA - '||TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS'));
FOR rec IN cur_recipient LOOP
BEGIN
n_rec := n_rec +1;
-- Aggiorno solo se sono in presenza di operatore donor virtuale
IF rec.donorEffettivo <> rec.donating
THEN
UPDATE DBCGO.DBCGO_GESTIONE_RICHIESTA_REC go_rec
SET go_rec.CODICE_OPERATORE_V_DONOR = rec.donorEffettivo
WHERE go_rec.ID_RICHIESTA = rec.idRichiesta AND
go_rec.CODICE_OPERATORE_V_DONOR IS NULL;
END IF;
END;
END LOOP;
COMMIT;
DBMS_OUTPUT.put_line ('recupero_dati_DBCGO: FINE PROCEDURA - '||' RECORDS TRATTATI: '||n_rec);
EXCEPTION
WHEN OTHERS
THEN
if cur_recipient%ISOPEN then CLOSE cur_recipient;
end if;
DBMS_OUTPUT.put_line ('Errore in recupero_dati_DBCGO ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
RETURN;
END;
/

View File

@@ -0,0 +1,27 @@
#!/bin/ksh
###########################################################
# Progetto: Gateway MNP
# Script: ccc_allineamento
# Descrizione: Allineamento dati da CCC
###########################################################
THIS_PATH=`dirname $0`
. $THIS_PATH/setEnv.sh
THIS=`basename $0 .sh`
LOG=$MNP_LOG_SCRIPT_HOME/$THIS.log
adesso=$(date)
#controllo se lo script è già in esecuzione
check_rc=`$THIS_PATH/is_Running_Script $THIS $$`
if [ $? -eq 0 ]
then
echo '******' $adesso Eseguo AllineamentoPDVISTATDaCCC >> $LOG
$THIS_PATH/ProcessExecutor.sh mnp.batch.AllineamentoPDVISTATDaCCC >> $LOG
else
echo " (WARNING) $(date) Esecuzione non avvenuta per presenza processo precedente : $prog" >> $LOG
fi

View File

@@ -0,0 +1,14 @@
#!/bin/ksh
###########################################################
# Progetto: Gateway MNP
# Script: change_pwd
# Descrizione: Applicazione per modificare una password criptata in un file di properties
#
###########################################################
THIS_PATH=`dirname $0`
. $THIS_PATH/setEnv.sh
adesso=$(date)
$THIS_PATH/javaExec_unix.sh it.valueteam.securityutility.ChangePassword $1 $2

View File

@@ -0,0 +1,17 @@
LOAD data
APPEND
into table MNP_APPO_TIPO_CLIENTI
FIELDS TERMINATED BY X'09' OPTIONALLY ENCLOSED BY '"'
(
MSISDN POSITION(1:15) "'39' || :MSISDN",
MARCAGGIO POSITION(17:18),
SOTTOMARCAGGIO POSITION(19:19),
NOME_OT POSITION(20:21),
TIPO_UTENZA POSITION(22:22),
SISTEMA_COMPETENZA POSITION(23:27),
UTENZA_DUAL POSITION(28:42),
CF POSITION(44:59),
ICCID POSITION(60:79),
STATO POSITION(80:86)
)

View File

@@ -0,0 +1,16 @@
LOAD data
APPEND
into table MNP_APPO_TIPO_CLIENTI_DBSS
FIELDS TERMINATED BY X'09' OPTIONALLY ENCLOSED BY '"'
( MSISDN POSITION(1:15) "'39' || :MSISDN",
MARCAGGIO POSITION(17:18),
SOTTOMARCAGGIO POSITION(19:19),
NOME_OT POSITION(20:21),
TIPO_UTENZA POSITION(22:22),
SISTEMA_COMPETENZA POSITION(23:27),
UTENZA_DUAL POSITION(28:42),
CF POSITION(44:59),
ICCID POSITION(60:79),
STATO POSITION(80:86)
)

View File

@@ -0,0 +1,7 @@
LOAD DATA
TRUNCATE
INTO TABLE MNP_PCCOM_VARIAZIONI
FIELDS TERMINATED BY "$"
(NUM_TEL,
DATA_ATTIVAZIONE DATE 'YYYYMMDD',
DATA_CESSAZIONE DATE 'YYYYMMDD')

View File

@@ -0,0 +1,8 @@
LOAD DATA
TRUNCATE
INTO TABLE MNP_DBC_VARIAZIONE_OLO
FIELDS TERMINATED BY ";"
(TIPO_RECORD CONSTANT "V",
NUM_TEL,
DATA DATE 'DD/MM/YYYY',
RECIPIENT_NEW)

View File

@@ -0,0 +1,35 @@
#!/bin/ksh
##########################################################################################################################
# Progetto: Gateway MNP
# Script: crea_file_monitor_sm.sh
# Descrizione: Applicazione per la creazione del flusso
# del sistema SM
# Utilizzo: 0 parametri o 3 parametri
# - senza parametri crea il flusso con intervallo di riferimento [sysdate-7, sysdate]]
# - [DATE_RELATIVE|DATE_ASSOLUTE] se impostato a DATE_RELATIVE i parametri sono il numero di giorni rispetto a sysdate
# se impostato a DATE_ASSOLUTE i parametri sono le date in formato dd/MM/yyyy
# es. 1) ./crea_file_monitor_sm.sh --> genera il file per l'intervallo di date [sysdate-7, sysdate]
# 2) ./crea_file_monitor_sm.sh DATE_RELATIVE -5 -2 --> genera il file per le date sysdate-5, sysdate-2
# 3) ./crea_file_monitor_sm.sh DATE_ASSOLUTE 10/12/2012 31/12/2012 --> genera il file per le date 10/12/2012, 31/12/2012
##########################################################################################################################
THIS_PATH=`dirname $0`
. $THIS_PATH/setEnv.sh
THIS=`basename $0 .sh`
LOG=$MNP_LOG_SCRIPT_HOME/$THIS.log
adesso=$(date)
#controllo se lo script è già in esecuzione
check_rc=`$THIS_PATH/is_Running_Script $THIS $$`
if [ $? -eq 0 ]
then
echo '******' $adesso Eseguo creazione flusso per sistema SM >> $LOG
$THIS_PATH/ProcessExecutor.sh mnp.internalflow.out.MonitoraggioSMOut $* >> $LOG
else
echo " (WARNING) $(date) Esecuzione non avvenuta per presenza processo precedente : $prog" >> $LOG
fi

View File

@@ -0,0 +1,50 @@
#
# Shell Script per creazione file finale per PCCOM.
# E' un flusso una tantum.
#
#
#!/usr/bin/ksh
#
#set -x
THIS_PATH=`dirname $0`
. $THIS_PATH/setEnv.sh
if [ $? -eq 0 ]
then
# ESECUZIONE SCRIPT
# directory in cui sono presenti i files control (CTL)
CMD=$MNP_SCRIPT_CMD_HOME
#directory in cui sono presenti gli script sql
SQL=$MNP_SCRIPT_SQL_HOME
#directory in cui sono presenti i file dati
DAT=$MNP_SCRIPT_TMP_HOME
#directory in cui eseguire il backup dei file acquisiti correttamente
BACKUP_BAD=$MNP_SCRIPT_TMP_HOME
BACKUP_DISCARD=$MNP_SCRIPT_TMP_HOME
#directory in cui scrivere i files di Log
LOG=$MNP_LOG_SCRIPT_HOME
APPLICATION_LOG=$MNP_LOG_APP_HOME
file_di_log=crea_file_una_tantum_pccom.log
FILE_NAME=UTENZE_CESSATE_MNP.CSV
echo $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/creazione_una_tantum_pccom.sql >> $APPLICATION_LOG/$file_di_log 2>&1
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/creazione_una_tantum_pccom.sql >> $APPLICATION_LOG/$file_di_log 2>&1
echo Compressione file creato
gzip $MNP_GWMNP_HOME/FTPOUT/$FILE_NAME
echo File compresso
fi
echo "Processo terminato" >> $APPLICATION_LOG/$file_di_log 2>&1
echo "Processo terminato"

View File

@@ -0,0 +1,33 @@
#!/bin/ksh
THIS_PATH=`dirname $0`
. $THIS_PATH/setEnv.sh
THIS=`basename $0 .sh`
LOG=$MNP_LOG_SCRIPT_HOME/$THIS.log
USAGE="sintassi: $0 [t] [n]\n\tt = 1|2|3|4|5 rispettivamente per Attivazioni Cassa - Attivazioni Competenza - Cessazioni cassa - Cessazioni Competenza - Tutti i flussi\n\tn = Intero > 0: Numero di giorni precedenti alla data odierna su cui effettuare l'estrazione"
adesso=$(date)
#controllo se lo script è già in esecuzione
check_rc=`$THIS_PATH/is_Running_Script $THIS $$`
if [ $? -eq 0 ]
then
if (($# != 2)) || (($1 < 1)) || (($1 > 5)) || (($2 < 1))
then
echo $USAGE
exit
fi
echo '******' $adesso Eseguo recupero code XML >> $LOG
$THIS_PATH/ProcessExecutor.sh mnp.internalflow.out.FlussiDWOOut $* >> $LOG
else
echo " (WARNING) $(date) Esecuzione non avvenuta per presenza processo precedente : $prog" >> $LOG
fi

View File

@@ -0,0 +1,33 @@
#!/bin/ksh
THIS_PATH=`dirname $0`
. $THIS_PATH/setEnv.sh
THIS=`basename $0 .sh`
LOG=$MNP_LOG_SCRIPT_HOME/$THIS.log
USAGE="sintassi: $0 [n]\n\tn = Intero > 0: Numero di giorni precedenti alla data odierna su cui effettuare l'estrazione"
adesso=$(date)
#controllo se lo script è già in esecuzione
check_rc=`$THIS_PATH/is_Running_Script $THIS $$`
if [ $? -eq 0 ]
then
if (($# != 1)) || (($1 < 0))
then
echo $USAGE
exit
fi
echo '******' $adesso Eseguo recupero code XML >> $LOG
$THIS_PATH/ProcessExecutor.sh mnp.internalflow.out.FlussoSharePointOut $* >> $LOG
else
echo " (WARNING) $(date) Esecuzione non avvenuta per presenza processo precedente : $prog" >> $LOG
fi

View File

@@ -0,0 +1,21 @@
--execute as DBC
spool /mnpapp/log/script/dbc200701.log;
-----------------------------
--CREATE/MODIFY OBJECT
@@dbcDDL.sql
-----------------------------
--INSERT/UPDATE DATA
@@dbcDML.sql
-----------------------------
--COMPILE PROCEDURE
--@/mnpapp/dbcgo/script/procedure/dbcgo/Util.jsp
--show err
spool off;

View File

@@ -0,0 +1,5 @@
--da eseguire come utente MNP
-- integrazione PCS - cancellazione della tabella MNP_UTENTI
DROP TABLE MNP_UTENTI;

View File

@@ -0,0 +1,28 @@
--da eseguire come utente MNP
-------------------------------------------------------------------------
--elimino i record riferiti ad azioni non più esistenti dopo l'integrazione con PCS
delete from MNP_LOV where LOV_NAME='LOG_ACTION' and NAME in ('25','26','27','28','29','30','31','32');
commit;

View File

@@ -0,0 +1,17 @@
--execute as DBC
spool /mnpapp/log/script/dbc_Extra_Kit_aprile_10.log;
-----------------------------
--CREATE/MODIFY OBJECT
@@dbcDDL.sql
-----------------------------
--INSERT/UPDATE DATA
@@dbcDML.sql
-----------------------------
spool off;

View File

@@ -0,0 +1,29 @@
--Eseguire come utente MNP
-- TABELLA NOTIFICA DBCFX --
CREATE TABLE MNP_DBCFX_DPP_OUT (
UNIQUE_ID NUMBER NOT NULL,
ID_RICHIESTA VARCHAR2(23) NOT NULL,
DATA_CREAZIONE DATE DEFAULT SYSDATE NOT NULL,
DATA_NOTIFICA DATE,
DA_SCODARE NUMBER(1) NOT NULL,
PROCESSO VARCHAR2(1) NOT NULL,
DCO VARCHAR2(10) NOT NULL,
MSISDN VARCHAR2(13) NOT NULL,
CODICE_OPERATORE_RECIPIENT VARCHAR2(4) NOT NULL,
RGN_RECIPIENT VARCHAR2(3) NOT NULL
)
TABLESPACE TAB_HUGE_2;
ALTER TABLE MNP_DBCFX_DPP_OUT ADD
CONSTRAINT PK_MNP_DBCFX_DPP_OUT
PRIMARY KEY
(UNIQUE_ID)
USING INDEX
TABLESPACE TAB_IDX_HUGE_2_2;
-- SEQUENCE --
CREATE SEQUENCE SEQ_DBCFX_DPP_OUT;

View File

@@ -0,0 +1,11 @@
--aggiunta log mdb dbcfx out
INSERT INTO MNP_ANAGRAFICA_PROCESSO (CODICE_PROCESSO,NOME_PROCESSO) VALUES ('RC', 'MessageConsumerEjbDbcfxOutBean');
INSERT INTO MNP_PROCESSO_LOG(CODICE_PROCESSO, CODICE_LOG, LOG_ON, TIPO_EVENTO)
SELECT 'RC', CODICE_LOG, 1, '00'
FROM MNP_ANAGRAFICA_LOG
WHERE CODICE_LOG LIKE '00%';
INSERT INTO MNP_PROCESSO_LOG(CODICE_PROCESSO, CODICE_LOG, LOG_ON, TIPO_EVENTO)
VALUES('RC', '9999', 1, '00');
COMMIT;

View File

@@ -0,0 +1,10 @@
---ESEGUIRE COME UTENTE DBCGO
CREATE OR REPLACE VIEW MNP_REPORT_AGCOM_VIEW
(MESEANNO, TIPO_REPORT, CSV1, CSV2, CSV3,
DATA_CREAZIONE, IDROW)
AS
((SELECT a.mese ||'/'|| a.anno as annomese, a.tipo, a.csv1, a.csv2, a.csv3, a.data_creazione, rownum as idrow
FROM mnp_report_agcom_view@dwh a))
/

View File

@@ -0,0 +1,315 @@
CREATE TABLE MNP_BIT_OUT_REC_NEW
(
ID_PROG NUMBER(18) NOT NULL,
ID_RICHIESTA VARCHAR2(18 BYTE) NOT NULL,
STATO_RICHIESTA VARCHAR2(30 BYTE) NOT NULL,
CAUSALE_RIFIUTO VARCHAR2(1000 BYTE),
DATA_ORA_EFFETTIVA_VALIDAZIONE DATE,
DATA_CUT_OVER DATE,
NOME_FILE VARCHAR2(50 BYTE),
DA_INVIARE NUMBER(1) DEFAULT 0 NOT NULL,
TIPO_FILE NUMBER(1),
ID_RICHIESTA_DBC VARCHAR2(23 BYTE) NOT NULL,
DATA_INVIO DATE DEFAULT SYSDATE NOT NULL,
UNIQUE_ID VARCHAR2(50 BYTE),
DA_SCODARE NUMBER(1) DEFAULT 0 NOT NULL,
NOME_FILE_TP VARCHAR2(28 BYTE),
TIPO_SPEDIZIONE VARCHAR2(2 BYTE) DEFAULT NULL NOT NULL,
CREDITO VARCHAR2(8 BYTE),
DATA_NOTIFICA_CREDITO VARCHAR2(8 BYTE),
ORA_NOTIFICA_CREDITO VARCHAR2(5 BYTE),
DATA_INVIO_EFFETTIVA DATE
)
TABLESPACE TAB_MEDIUM
NOLOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING;
ALTER TABLE MNP_BIT_OUT_REC_NEW ADD (
CONSTRAINT PK_BIT_OUT_REC_NEW
PRIMARY KEY
(ID_PROG)
USING INDEX
TABLESPACE TAB_IDX_MEDIUM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 384M
NEXT 64M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
));
CREATE INDEX IDX_MNP_BIT_OUT_REC_NEW ON MNP_BIT_OUT_REC_NEW
(UNIQUE_ID)
LOGGING
TABLESPACE TAB_IDX_BIG
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 128M
NEXT 128M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE INDEX IDX_MNP_BIT_OUT_REC_NEW1 ON MNP_BIT_OUT_REC_NEW
(ID_RICHIESTA_DBC)
LOGGING
TABLESPACE TAB_IDX_BIG
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 128M
NEXT 128M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE TABLE MNP_CCRM_NOTIFICA_OUT_NEW
(
ID_PROG NUMBER(18) NOT NULL,
ID_RICHIESTA VARCHAR2(23 BYTE) NOT NULL,
CODICE_EVENTO VARCHAR2(2 BYTE) NOT NULL,
NUMERO_TELEFONICO_OLO VARCHAR2(13 BYTE),
NUMERO_DUALE VARCHAR2(13 BYTE),
OPERATORE VARCHAR2(20 BYTE),
IDENTIFICATIVO_RICHIESTA_AOM VARCHAR2(64 BYTE) NOT NULL,
TIPO_RICHIESTA VARCHAR2(50 BYTE),
CODICE_FISCALE_PARTITA_IVA VARCHAR2(16 BYTE),
TECNOLOGIA VARCHAR2(50 BYTE),
TIPOLOGIA_UTENZA VARCHAR2(50 BYTE),
DATA_VALIDAZIONE DATE,
ICCD_SERIAL_NUMBER VARCHAR2(30 BYTE),
STATO VARCHAR2(50 BYTE) NOT NULL,
CAUSALE VARCHAR2(1000 BYTE),
DATA_MODIFICA_STATO DATE NOT NULL,
NOTE VARCHAR2(400 BYTE),
DATA_INVIO DATE DEFAULT NULL,
TIPO_PROCESSO VARCHAR2(2 BYTE),
DATA_INSERIMENTO DATE DEFAULT SYSDATE NOT NULL,
UNIQUE_ID VARCHAR2(50 BYTE),
DA_SCODARE NUMBER(1) DEFAULT 0 NOT NULL,
CODICE_GRUPPO VARCHAR2(16 BYTE),
DATA_CUT_OVER DATE,
CODICE_DEALER VARCHAR2(10 BYTE),
FLAG_TC VARCHAR2(1 BYTE) DEFAULT 'N' NOT NULL,
CREDITO VARCHAR2(8 BYTE),
FLAG_FURTO VARCHAR2(1 BYTE) DEFAULT 'N' NOT NULL,
PROGETTOADHOC VARCHAR2(1 BYTE)
)
TABLESPACE TAB_HUGE_2
NOLOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING;
ALTER TABLE MNP_CCRM_NOTIFICA_OUT_NEW ADD (
CONSTRAINT PK_CCRM_NOTIFICA_OUT_NEW
PRIMARY KEY
(ID_PROG)
USING INDEX
TABLESPACE TAB_IDX_HUGE_2_2
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 512M
NEXT 512M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
));
CREATE INDEX IDX_CCRM_NOTIFICA_OUT_NEW3 ON MNP_CCRM_NOTIFICA_OUT_NEW
(ID_RICHIESTA)
LOGGING
TABLESPACE TAB_IDX_HUGE_2_2
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 512M
NEXT 512M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE INDEX MNP_CCRM_NOTIFICA_OUT_NEW2 ON MNP_CCRM_NOTIFICA_OUT_NEW
(UNIQUE_ID)
LOGGING
TABLESPACE TAB_IDX_BIG
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 128M
NEXT 128M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE TABLE MNP_CIRCE_OUT_NEW
(
CODICE_OPERATORE_RECIPIENT VARCHAR2(4 BYTE) NOT NULL,
CODICE_OPERATORE_DONATING VARCHAR2(4 BYTE) NOT NULL,
MSISDN_A VARCHAR2(15 BYTE) NOT NULL,
DATA_CUT_OVER VARCHAR2(10 BYTE) NOT NULL,
ID_PROG NUMBER(18) NOT NULL,
DA_INVIARE NUMBER(1) NOT NULL,
MSISDN_B VARCHAR2(15 BYTE),
MSISDN_C VARCHAR2(15 BYTE),
NOME_FILE VARCHAR2(40 BYTE),
DATA_VALIDAZIONE_RICHIESTA VARCHAR2(10 BYTE) NOT NULL,
STATO VARCHAR2(2 BYTE) NOT NULL,
TECNOLOGIA VARCHAR2(1 BYTE) NOT NULL,
ID_RICHIESTA VARCHAR2(23 BYTE) NOT NULL,
IMSI VARCHAR2(15 BYTE) NOT NULL,
TIPO_FILE NUMBER(2),
DATA_CREAZIONE DATE DEFAULT SYSDATE NOT NULL
)
TABLESPACE TAB_MEDIUM
NOLOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING;
ALTER TABLE MNP_CIRCE_OUT_NEW ADD (
CONSTRAINT PK_CIRCE_OUT_NEW
PRIMARY KEY
(ID_PROG)
USING INDEX
TABLESPACE TAB_IDX_MEDIUM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 384M
NEXT 64M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
));
CREATE INDEX IDX_MNP_CIRCE_OUT_NEW1 ON MNP_CIRCE_OUT_NEW
(ID_RICHIESTA)
LOGGING
TABLESPACE TAB_IDX_BIG
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 128M
NEXT 128M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE TABLE MNP_CIRCE_OUT_REC_NEW
(
ID_PROG NUMBER(18) NOT NULL,
CODICE_OPERATORE_RECIPIENT VARCHAR2(4 BYTE) NOT NULL,
CODICE_OPERATORE_DONATING VARCHAR2(4 BYTE) NOT NULL,
MSISDN_A VARCHAR2(15 BYTE) NOT NULL,
DATA_CUT_OVER VARCHAR2(10 BYTE) NOT NULL,
DA_INVIARE NUMBER(1) NOT NULL,
MSISDN_B VARCHAR2(15 BYTE),
MSISDN_C VARCHAR2(15 BYTE),
NOME_FILE VARCHAR2(60 BYTE),
DATA_VALIDAZIONE_RICHIESTA VARCHAR2(10 BYTE) NOT NULL,
STATO VARCHAR2(2 BYTE) NOT NULL,
TECNOLOGIA VARCHAR2(1 BYTE) NOT NULL,
ID_RICHIESTA VARCHAR2(23 BYTE) NOT NULL,
IMSI VARCHAR2(15 BYTE) NOT NULL,
TIPO_FILE NUMBER(2),
DATA_CREAZIONE DATE DEFAULT SYSDATE NOT NULL
)
TABLESPACE TAB_MEDIUM
NOLOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING;
ALTER TABLE MNP_CIRCE_OUT_REC_NEW ADD (
CONSTRAINT PK_CIRCE_OUT_REC_NEW
PRIMARY KEY
(ID_PROG)
USING INDEX
TABLESPACE TAB_IDX_MEDIUM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64M
NEXT 64M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
));
CREATE INDEX IDX_MNP_CIRCE_OUT_REC_NEW1 ON MNP_CIRCE_OUT_REC_NEW
(ID_RICHIESTA)
LOGGING
TABLESPACE TAB_IDX_BIG
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 128M
NEXT 128M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE INDEX IDX_MNP_CIRCE_OUT_REC_NEW2 ON MNP_CIRCE_OUT_REC_NEW
(DA_INVIARE,TIPO_FILE)
LOGGING
TABLESPACE TAB_IDX_BIG
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 128M
NEXT 10M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOPARALLEL;

View File

@@ -0,0 +1,352 @@
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC1);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC2);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC3);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC4);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC5);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC6);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC7);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC8);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC9);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC10);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC11);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC12);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC13);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC14);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC15);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC16);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC17);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC18);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC19);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC20);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC21);
commit;
insert /* +APPEND */ into MNP_BIT_OUT_REC_NEW
select * from MNP_BIT_OUT_REC partition (MNP_BIT_OUT_REC_MAX);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT1);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT2);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT3);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT4);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT5);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT6);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT7);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT8);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT9);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT10);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT11);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT12);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT13);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT14);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT15);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT16);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT17);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT18);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT19);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT20);
commit;
insert /* +APPEND */ into MNP_CCRM_NOTIFICA_OUT_NEW
select * from MNP_CCRM_NOTIFICA_OUT partition (MNP_CCRM_NOTIFICA_OUT_MAX);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT1);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT2);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT3);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT4);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT5);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT6);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT7);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT8);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT9);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT10);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT11);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT12);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT13);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT14);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT15);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT16);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT17);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT18);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT19);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT20);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT21);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_NEW
select * from MNP_CIRCE_OUT partition (MNP_CIRCE_OUT_MAX);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC1);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC2);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC3);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC4);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC5);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC6);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC7);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC8);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC9);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC10);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC11);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC12);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC13);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC14);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC15);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC16);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC17);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC18);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC19);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC20);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC21);
commit;
insert /* +APPEND */ into MNP_CIRCE_OUT_REC_NEW
select * from MNP_CIRCE_OUT_REC partition (MNP_CIRCE_OUT_REC_MAX);
commit;

View File

@@ -0,0 +1,29 @@
alter table MNP_BIT_OUT_REC rename to MNP_BIT_OUT_REC_OLD;
alter table MNP_CCRM_NOTIFICA_OUT rename to MNP_CCRM_NOTIFICA_OUT_OLD;
alter table MNP_CIRCE_OUT rename to MNP_CIRCE_OUT_OLD;
alter table MNP_CIRCE_OUT_REC rename to MNP_CIRCE_OUT_REC_OLD;
alter table MNP_BIT_OUT_REC_NEW rename to MNP_BIT_OUT_REC;
alter table MNP_CCRM_NOTIFICA_OUT_NEW rename to MNP_CCRM_NOTIFICA_OUT;
alter table MNP_CIRCE_OUT_NEW rename to MNP_CIRCE_OUT;
alter table MNP_CIRCE_OUT_REC_NEW rename to MNP_CIRCE_OUT_REC;
PROMPT RECORD MNP_BIT_OUT OLD E NEW
SELECT COUNT(*) NUM_REC FROM MNP_BIT_OUT_REC_OLD
UNION
SELECT COUNT(*) NUM_REC FROM MNP_BIT_OUT_REC;
PROMPT RECORD MNP_CCRM_NOTIFICA_OUT OLD E NEW
SELECT COUNT(*) NUM_REC FROM MNP_CCRM_NOTIFICA_OUT_OLD
UNION
SELECT COUNT(*) NUM_REC FROM MNP_CCRM_NOTIFICA_OUT;
PROMPT RECORD MNP_CIRCE_OUT OLD E NEW
SELECT COUNT(*) NUM_REC FROM MNP_CIRCE_OUT_OLD
UNION
SELECT COUNT(*) NUM_REC FROM MNP_CIRCE_OUT;
PROMPT RECORD MNP_CIRCE_OUT_REC OLD E NEW
SELECT COUNT(*) NUM_REC FROM MNP_CIRCE_OUT_REC_OLD
UNION
SELECT COUNT(*) NUM_REC FROM MNP_CIRCE_OUT_REC;

View File

@@ -0,0 +1,4 @@
drop table MNP_BIT_OUT_REC_OLD;
drop table MNP_CCRM_NOTIFICA_OUT_OLD;
drop table MNP_CIRCE_OUT_OLD;
drop table MNP_CIRCE_OUT_REC_OLD;

View File

@@ -0,0 +1,17 @@
--execute as DBC
spool /mnpapp/log/script/dbc_ExtraKit_Aprile_12.log;
-----------------------------
--CREATE/MODIFY OBJECT
@@dbcDDL.sql
-----------------------------
--INSERT/UPDATE DATA
@@dbcDML.sql
-----------------------------
spool off;

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More