Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.64 KB | None | 0 0
  1. CREATE DEFINER=`root`@localhost PROCEDURE `load_client_data`()
  2. BEGIN
  3.     DECLARE id INT;
  4.     DECLARE wiek INT;
  5.     DECLARE zarobki INT;
  6.     DECLARE kraj TEXT;
  7.     DECLARE plec TEXT;
  8.    
  9.     DECLARE max_id_staging_area INT DEFAULT 0;
  10.     DECLARE max_id_data_warehouse INT DEFAULT 0;
  11.     DECLARE count_rows INT DEFAULT 0;
  12.     DECLARE i INT DEFAULT 1;
  13.  
  14.     SET max_id_staging_area = (SELECT MAX(klient_id) FROM staging_area.klient);
  15.     SET max_id_data_warehouse = (SELECT MAX(KLIENT_ID) FROM data_warehouse.KLIENT);
  16.    
  17.     WHILE i <= max_id_staging_area DO
  18.         SET count_rows = (SELECT COUNT(*) FROM max_id_staging_area.klient);
  19.         IF count_rows > 0 THEN
  20.             SET id = (SELECT klient_id FROM staging_area.klient WHERE klient_id = i);
  21.             SET wiek = (SELECT przedzial_wiekowy FROM staging_area.klient WHERE klient_id = i);
  22.             SET zarobki = (SELECT przedzial_zarobkow FROM staging_area.klient WHERE klient_id = i);
  23.             SET plec = (SELECT plec FROM staging_area.klient WHERE klient_id = i);
  24.             SET kraj = (SELECT kraj FROM staging_area.klient WHERE klient_id = i);
  25.            
  26.             IF (id IS NOT NULL) AND (wiek IS NOT NULL) AND (zarobki IS NOT NULL) AND (plec IS NOT NULL) AND (kraj IS NOT NULL) THEN
  27.                 IF max_id_data_warehouse IS NULL THEN
  28.                     INSERT INTO data_warehouse.klient VALUES (id + max_id_data_warehouse, wiek, zarobki, plec, kraj);
  29.                 ELSE
  30.                     INSERT INTO data_warehouse.klient VALUES (id, wiek, zarobki, plec, kraj);
  31.                 END IF;
  32.             END IF;
  33.         END IF;
  34.         SET i = i + 1;
  35.     END WHILE;
  36. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement