First Commit - Source Code from Reply
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
CREATE OR REPLACE PROCEDURE UPDATE_REC_DELTA (
|
||||
mese_in IN NUMBER,
|
||||
anno_in IN NUMBER,
|
||||
cod_errore IN OUT NUMBER
|
||||
)
|
||||
IS
|
||||
primo_giorno_mese DATE;
|
||||
-- Primo giorno lavorativo del mese di riferiemnto
|
||||
ultimo_giorno_mese DATE;
|
||||
-- Ultimo giorno lavorativo del mese di riferiemnto
|
||||
errore NUMBER (1) := 0;
|
||||
-- Purpose: Aggiornamento al mese di riferimento della tabella mnp_dw_donor_delta
|
||||
--
|
||||
-- MODIFICATION HISTORY
|
||||
-- Person Date Comments
|
||||
-- L.Marcucci 16/08/2004 -------------------------------------------
|
||||
BEGIN
|
||||
cod_errore := 0;
|
||||
primo_giorno_mese := dwh.fun_primo_giorno_lavorativo (mese_in, anno_in);
|
||||
ultimo_giorno_mese := dwh.fun_ultimo_giorno_lavorativo (mese_in, anno_in);
|
||||
|
||||
DELETE FROM dwh.mnp_dw_rec_delta;
|
||||
|
||||
COMMIT;
|
||||
|
||||
INSERT INTO dwh.mnp_dw_rec_delta
|
||||
(id_richiesta, aom_donor, msisdn, tipo_linea,
|
||||
data_ricezione_richiesta, data_validazione_max,
|
||||
data_cut_over_aom)
|
||||
SELECT gr.id_richiesta, gr.codice_operatore_donating, gr.msisdn,
|
||||
gr.tipo_cliente, gr.dataricezionerichiesta,
|
||||
TRUNC (gr.data_validazione_max), TRUNC (gr.data_cut_over_aom)
|
||||
FROM mnp.mnp_gestione_richiesta_rec gr
|
||||
WHERE gr.richiestaadhoc = '0'
|
||||
AND gr.codice_operatore_donating <> 'TIMT'
|
||||
AND gr.dataricezionerichiesta >= to_date('26-APR-2004','dd-MON-YYYY')
|
||||
AND gr.dataricezionerichiesta <= ultimo_giorno_mese
|
||||
AND ( gr.data_fine_processo IS NULL
|
||||
OR (gr.data_fine_processo >= primo_giorno_mese)
|
||||
);
|
||||
|
||||
COMMIT;
|
||||
|
||||
DELETE FROM dwh.mnp_dw_rec_terzeparti_delta;
|
||||
|
||||
COMMIT;
|
||||
|
||||
INSERT INTO dwh.mnp_dw_rec_terzeparti_delta
|
||||
(id_richiesta, aom_terze_parti)
|
||||
SELECT dwt.id_richiesta, o.desc_olo
|
||||
FROM dwh.mnp_dw_rec_delta dwt, mnp.mnp_olo o
|
||||
WHERE o.flag_terze_parti = 1 AND o.desc_olo <> dwt.aom_donor;
|
||||
|
||||
COMMIT;
|
||||
dwh.update_rec_delta_2 (ultimo_giorno_mese, errore);
|
||||
|
||||
IF errore = 0
|
||||
THEN
|
||||
dwh.update_rec_terze_parti (ultimo_giorno_mese, errore);
|
||||
|
||||
IF errore = 0
|
||||
THEN
|
||||
MERGE INTO dwh.mnp_dw_rec t
|
||||
USING dwh.mnp_dw_rec_delta s
|
||||
ON (t.id_richiesta = s.id_richiesta)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE
|
||||
SET t.aom_donor = s.aom_donor, t.msisdn = s.msisdn,
|
||||
t.tipo_linea = s.tipo_linea,
|
||||
t.data_ricezione_richiesta = s.data_ricezione_richiesta,
|
||||
t.data_invio_ad_aom = s.data_invio_ad_aom,
|
||||
t.data_presa_in_carico = s.data_presa_in_carico,
|
||||
t.data_validazione_max = s.data_validazione_max,
|
||||
t.data_validazione = s.data_validazione,
|
||||
t.causale_rifiuto = s.causale_rifiuto,
|
||||
t.data_espletamento_donating =
|
||||
s.data_espletamento_donating,
|
||||
t.data_cut_over_aom = s.data_cut_over_aom,
|
||||
t.stato = s.stato,
|
||||
t.data_stato_finale = s.data_stato_finale
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (id_richiesta, aom_donor, msisdn, tipo_linea,
|
||||
data_ricezione_richiesta, data_invio_ad_aom,
|
||||
data_presa_in_carico, data_validazione_max,
|
||||
data_validazione, causale_rifiuto,
|
||||
data_espletamento_donating, data_cut_over_aom, stato,
|
||||
data_stato_finale)
|
||||
VALUES (s.id_richiesta, s.aom_donor, s.msisdn, s.tipo_linea,
|
||||
s.data_ricezione_richiesta, s.data_invio_ad_aom,
|
||||
s.data_presa_in_carico, s.data_validazione_max,
|
||||
s.data_validazione, s.causale_rifiuto,
|
||||
s.data_espletamento_donating, s.data_cut_over_aom,
|
||||
s.stato, s.data_stato_finale);
|
||||
COMMIT;
|
||||
MERGE INTO dwh.mnp_dw_rec_terzeparti t
|
||||
USING dwh.mnp_dw_rec_terzeparti_delta s
|
||||
ON ( t.id_richiesta = s.id_richiesta
|
||||
AND t.aom_terze_parti = s.aom_terze_parti)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE
|
||||
SET t.data_configurazione_teorica =
|
||||
s.data_configurazione_teorica,
|
||||
t.data_configurazione_effettiva =
|
||||
s.data_configurazione_effettiva
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (id_richiesta, aom_terze_parti,
|
||||
data_configurazione_teorica,
|
||||
data_configurazione_effettiva)
|
||||
VALUES (s.id_richiesta, s.aom_terze_parti,
|
||||
s.data_configurazione_teorica,
|
||||
s.data_configurazione_effettiva);
|
||||
COMMIT;
|
||||
ELSE
|
||||
cod_errore := 1;
|
||||
END IF;
|
||||
ELSE
|
||||
cod_errore := 1;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
cod_errore := 1;
|
||||
DBMS_OUTPUT.put_line ('Errore in UPDATE_REC_DELTA ' || SQLERRM);
|
||||
RETURN;
|
||||
END;
|
||||
/
|
||||
Reference in New Issue
Block a user