First Commit - Source Code from Reply
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
99
dbcmnpsrc/FE/mnpapp/script/DB_Portati_COOP/runDbc2COOP.sh
Normal file
99
dbcmnpsrc/FE/mnpapp/script/DB_Portati_COOP/runDbc2COOP.sh
Normal 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
|
||||
31
dbcmnpsrc/FE/mnpapp/script/DB_Portati_COOP/runDbc2COOP.sql
Normal file
31
dbcmnpsrc/FE/mnpapp/script/DB_Portati_COOP/runDbc2COOP.sql
Normal 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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;
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
CREATE TABLE MNP_DBP2COOP_DATE
|
||||
(
|
||||
START_DATE VARCHAR2(8 BYTE),
|
||||
END_DATE VARCHAR2(8 BYTE),
|
||||
FINAL_DATE VARCHAR2(8 BYTE)
|
||||
);
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
/
|
||||
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user