Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE DEFINER=`root`@`localhost` PROCEDURE `bad_pogrzeby`()
- BEGIN
- DECLARE v_CM_MIEJSCOWOSC varchar(100);
- declare v_CM_ULICA varchar(100);
- declare v_CM_NUMER_BUDYNKU int;
- declare v_CM_NUMER_MIESZKANIA int;
- declare v_CM_KOD_POCZTOWY varchar(6);
- DECLARE v_SWT_NAZWA varchar(100);
- DECLARE v_SWT_MIEJSCOWOSC VARCHAR(100);
- DECLARE v_SWT_ULICA VARCHAR(100);
- DECLARE v_SWT_NUMER_BUDYNKU int;
- DECLARE v_SWT_NUMER_MIESZKANIA int;
- DECLARE v_SWT_KOD_POCZTOWY VARCHAR(6);
- DECLARE v_PRF_NAZWA VARCHAR(200);
- DECLARE v_PRF_MIEJSCOWOSC VARCHAR(100);
- DECLARE v_NAZWA VARCHAR(100);
- DECLARE v_DATA date;
- DECLARE v_OD_PESEL numeric(11);
- declare v_OS_PESEL numeric(11);
- declare v_CENA numeric(8,2);
- DECLARE done INT DEFAULT FALSE;
- DECLARE v_ID_ADR_CM int;
- DECLARE v_ID_ADR_SWT int;
- DECLARE v_ID_PRF int;
- DECLARE v_ID_OD numeric(11);
- DECLARE v_ID_OS numeric(11);
- DECLARE v_ID_CM int;
- DECLARE v_ID_SWT int;
- DECLARE v_ERR int;
- DECLARE v_ERR_COUNT int;
- DECLARE v_ID int;
- DECLARE curs cursor for select SWT_MIEJSCOWOSC,SWT_ULICA, SWT_NUMER_BUDYNKU,SWT_NUMER_MIESZKANIA,SWT_KOD_POCZTOWY,DATA,CENA, SWT_NAZWA, PRF_NAZWA, PRF_MIEJSCOWOSC, CM_MIEJSCOWOSC, CM_ULICA,CM_NUMER_BUDYNKU, CM_NUMER_MIESZKANIA, CM_KOD_POCZTOWY,ERR, ID_OS, ID_OD, ID_POGRZEB from all_bad.pogrzeby;
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
- set v_err_count = (SELECT ERR_COUNT FROM all_bad.metadata limit 1);
- open curs;
- read_loop : LOOP
- fetch curs into v_SWT_MIEJSCOWOSC,v_SWT_ULICA, v_SWT_NUMER_BUDYNKU,v_SWT_NUMER_MIESZKANIA,v_SWT_KOD_POCZTOWY,v_DATA, v_CENA, v_SWT_NAZWA, v_PRF_NAZWA, v_PRF_MIEJSCOWOSC, v_CM_MIEJSCOWOSC, v_CM_ULICA, v_CM_NUMER_BUDYNKU, v_CM_NUMER_MIESZKANIA, v_CM_KOD_POCZTOWY, v_ERR, v_OS_PESEL, v_OD_PESEL, v_ID;
- IF done THEN
- LEAVE read_loop;
- END IF;
- if (v_err<v_err_count)
- then
- SET v_ID_ADR_SWT = (SELECT ID_ADRESU
- FROM target.adresy
- WHERE MIEJSCOWOSC = v_SWT_MIEJSCOWOSC AND ULICA = v_SWT_ULICA AND NUMER_BUDYNKU = v_SWT_NUMER_BUDYNKU
- AND NUMER_MIESZKANIA = v_SWT_NUMER_MIESZKANIA AND KOD_POCZTOWY = v_SWT_KOD_POCZTOWY
- LIMIT 1);
- SET v_ID_ADR_CM = (SELECT ID_ADRESU
- FROM target.adresy
- WHERE MIEJSCOWOSC = v_CM_MIEJSCOWOSC AND ULICA = v_CM_ULICA AND NUMER_BUDYNKU = v_CM_NUMER_BUDYNKU
- AND NUMER_MIESZKANIA = v_CM_NUMER_MIESZKANIA AND KOD_POCZTOWY = v_CM_KOD_POCZTOWY
- LIMIT 1);
- select v_id_adr_cm, v_CM_MIEJSCOWOSC, v_CM_ULICA
- SET v_ID_CM = (SELECT ID_CMT
- FROM target.CMENTARZE
- WHERE ID_ADRESU = v_ID_ADR_CM
- LIMIT 1);
- SET v_ID_PRF = (SELECT id_PRF
- FROM target.parafie
- WHERE NAZWA = v_PRF_NAZWA AND MIEJSCOWOSC = v_PRF_MIEJSCOWOSC
- LIMIT 1);
- SET v_ID_SWT = (SELECT ID_SWT
- FROM target.swiatynie
- WHERE ID_PRF = v_ID_PRF AND NAZWA = v_SWT_NAZWA AND ID_ADRESU = v_ID_ADR_SWT
- LIMIT 1);
- SET v_ID_OD = (SELECT ID_OD
- FROM target.osoby_duchowne
- WHERE ID_OD = v_OD_PESEL
- LIMIT 1);
- SET v_ID_OS = (SELECT ID_OS
- FROM target.osoby_swieckie
- WHERE ID_OS = v_OS_PESEL
- LIMIT 1);
- IF v_ID_ADR_SWT is null or v_ID_ADR_CM is null or v_ID_PRF is null or v_ID_SWT is null or v_ID_OS is null or v_ID_OD is null THEN
- UPDATE all_bad.pogrzeby set err = v_err+1 where ID_POGRZEB = v_ID;
- ELSE
- if(select id_pgb
- from target.pogrzeby
- where data=v_DATA
- and cena = v_CENA
- and PGB_DATA_K>curdate()
- and id_od=v_ID_OD
- and id_os=v_ID_Os
- and id_prf=v_ID_PRF
- and id_swt=v_id_swt
- and id_cmt=v_id_cm
- )is null then
- INSERT INTO all_stg.pogrzeby (ID_OS,ID_CM,ID_PRF,ID_SWT,DATA,CENA,ID_OD)
- value ( v_ID_OS, v_ID_CM, v_ID_PRF, v_ID_SWT, v_DATA, v_CENA, v_ID_OD);
- end if;
- DELETE FROM all_bad.pogrzeby where ID_POGRZEB = v_id;
- END IF;
- end if;
- END LOOP;
- close curs;
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement