Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 9.18 KB | None | 0 0
  1. DECLARE
  2.    vWodID      NUMBER(10,1);
  3.    vWodSym     NUMBER(10,1);
  4.    vEleID      NUMBER(10,1);
  5.    vEleSym     NUMBER(10,1);
  6.    vSklID      NUMBER(10,1);
  7.    vSklSym     NUMBER(10,1);
  8.    vInsID      NUMBER(10,1);
  9.    vInsSym     NUMBER(10,1);
  10.    vLaczID     NUMBER(10,1);
  11.    vLaczSym    NUMBER(10,1);
  12.    vPrzYID     NUMBER(10,1);
  13.    vPrzySym    NUMBER(10,1);
  14. BEGIN
  15.    vWodSym := 30000;
  16.    vSklSym := 30000;
  17.    vEleSym := 30000;
  18.    vInsSym := 30000;
  19.    FOR q IN (SELECT DISTINCT w.yo_id, w.ywu_id, w.ywu_idwodomierz, w.ywu_nrwodomierz, w.YWU_NRWODOMIERZ1, w.YWU_ZAWORY, w.yw_Id, w.YW_SREDNICA, w.YW_SREDNICA2, w.YW_GWINT, w.YW_ZAKRES, w.YW_ZAKRES2,
  20.                     w.YW_MNOZNIK, w.YW_MNOZNIK2, w.GZKPRODUCENT_ID, w.INFSIECMIEJSCE_ID, w.GZKTYP_ID, Nvl(w.DATA_MONTAZ,'2017-11-01') data_m, w.infpunkt_Id, CASE WHEN g.YSZRO_ID IS NOT NULL THEN 'G' ELSE 'Z' END typ_instal,
  21.                     CASE WHEN w.YW_ROK_CECHY_LEGALIZACJI IS NOT NULL THEN To_Date(TRIM(w.YW_ROK_CECHY_LEGALIZACJI)||'-12-31','yyyy-mm-dd') ELSE Nvl(w.DATA_MONTAZ,'2017-11-01') END data_leg1,
  22.                     CASE WHEN w.YW_ROK_CECHY_LEGALIZACJI2 IS NOT NULL THEN To_Date(TRIM(w.YW_ROK_CECHY_LEGALIZACJI2)||'-12-31','yyyy-mm-dd') ELSE Nvl(w.DATA_MONTAZ,'2017-11-01') END data_leg2,
  23.                     CASE WHEN To_Number(REPLACE(w.YW_PRZEPUSTOWOSC_QN,'.',',')) > 0 THEN To_Number(REPLACE(w.YW_PRZEPUSTOWOSC_QN,'.',',')) ELSE NULL END przepl,
  24.                     CASE WHEN To_Number(REPLACE(w.YW_PRZEPUSTOWOSC_QN2,'.',',')) >0 THEN To_Number(REPLACE(w.YW_PRZEPUSTOWOSC_QN2,'.',',')) ELSE NULL END przepl_sp,
  25.                     CASE WHEN To_Number(REPLACE(w.YW_PRZEPUSTOWOSC_QNMAX,'.',',')) >0 THEN To_Number(REPLACE(w.YW_PRZEPUSTOWOSC_QNMAX,'.',',')) ELSE NULL END przepl_max,
  26.                     CASE WHEN To_Number(REPLACE(w.YW_PRZEPUSTOWOSC_QNMAX2,'.',',')) >0 THEN To_Number(REPLACE(w.YW_PRZEPUSTOWOSC_QNMAX2,'.',',')) ELSE NULL END przepl_sp_max,
  27.                     CASE WHEN w.YWU_NRWODOMIERZ1 IS NOT NULL THEN 'S' ELSE 'P' END typ_wodomierz,
  28.                     nad.gzkwodomierz_Id nad_wod_Id, nad.infsiecinstal_Id nad_Instal_Id, nad.infsiecelement_Id nad_element_Id
  29. --                    Row_Number() OVER (PARTITION BY w.yo_id ORDER BY w.yo_Id) lp
  30.                FROM zzms_wodomierz_powiazane w,
  31.                     zzms_wodomierz_powiazane nad,
  32.                     zzms_powiazania g,
  33.                     zzms_powiazania p
  34.                WHERE w.ywu_id = g.YROB_WZ_IDWOD_UZYT (+)
  35.                  AND w.ywu_id = p.p_YROB_WZ_IDWOD_UZYT (+)
  36.                  AND CASE WHEN p.YSZRO_ID IS NOT NULL THEN p.YROB_WZ_IDWOD_UZYT
  37.                           ELSE NULL
  38.                       END IS NOT NULL
  39.                  AND w.infpunkt_Id IS NOT NULL
  40.                  AND nad.ywu_id = p.YROB_WZ_IDWOD_UZYT
  41.                  AND nad.infsiecinstal_Id IS NOT NULL
  42.                ORDER BY w.yo_Id
  43.              )
  44.       LOOP
  45.          -- WODOMIERZ
  46.          SELECT wch.seq_gzkwodomierz.NEXTVAL INTO vWodID FROM dual;
  47.          vWodSym := vWodSym + 1;
  48.          INSERT INTO gzkwodomierz (gzkwodomierz_id, gzkwodomierz_symbol, gzkwodomierz_pole1, gzkwodomierz_pole2, gzkwodomierz_pole3, gzkwodomierz_rodzaj, gzkwodomierz_nrfabr, gzkwodomierz_dataprod, gzkwodomierz_datalegal, gzkwodomierz_datadelegal,
  49.                                    gzkwodomierz_illbcalc, gzkwodomierz_illbdzies, gzkwodomierz_gnyzswsk, gzkwodomierz_mnwsk, gzkwodomierz_przeplmax, gzkwodomierz_przeplnom, gzkwodomierz_przekroj, gzkwodomierz_nrsprzez, gzkwodomierz_mnsprzez,
  50.                                    gzkwodomierz_illbcalcspr, gzkwodomierz_illbdziesspr, gzkwodomierz_czyprywatny, gzktyp_id, gzkproducent_id, unimodulzsi_id, gzkwodomierz_stan_urz, gzkwodomierz_gwint, gzkwodomierz_uz_au_id, gzkwodomierz_data_au,
  51.                                    gzkwodomierz_uz_zm_id, gzkwodomierz_data_zm, gzkwodomierz_uwagi, GZKWODOMIERZ_PRZEKSPRZEZ)
  52.                            VALUES (vWodID, LPad(vWodSym,8,'0'), q.ywu_id, q.ywu_idwodomierz, q.yw_Id, q.TYP_WODOMIERZ, q.YWU_NRWODOMIERZ, q.data_m, q.DATA_LEG1, Add_Months(Trunc(sysdate,'year'),72)-1,
  53.                                    7, 2, '9999999,99', q.YW_MNOZNIK, q.przepl_max, q.przepl, q.YW_SREDNICA, q.YWU_NRWODOMIERZ1, q.YW_MNOZNIK2,
  54.                                    7, 2, 'F', q.gzktyp_Id, q.gzkproducent_id, 31, 'A', q.YW_GWINT, 1, SYSDATE,
  55.                                    1, SYSDATE, 'Zawory : ' || q.ywu_zawory, q.yw_srednica2);
  56.           INSERT INTO gzkstatusliczhist VALUES (wch.seq_gzkstatusliczhist.NEXTVAL, '2017-11-01', 1, vWodID, NULL, NULL, 2, 1, SYSDATE);
  57.          -- ELEMENTY SIECI
  58.          SELECT wch.seq_infsiecelement.NEXTVAL INTO vEleID FROM dual;
  59.          vEleSym := vEleSym + 1;
  60.          INSERT INTO infsiecelement (INFSIECELEMENT_ID, INFSIECELEMENT_SYMBOL, INFSIECELEMENT_NAZWA, INFSIECWARSTWA_ID, INFSIECRODZAJ_ID, INFSIECELEMENT_DATALEGAL, INFSIECELEMENT_DATADELEGAL, INFSIECELEMENT_DATAOD, INFSIECELEMENT_STAN_UKL ,
  61.                                      INFSIECELEMENT_PEC_NALICZAJ, INFSIECELEMENT_CZY_UKLAD, INFSIECELEMENT_OBLICZONO, INFSIECELEMENT_KONTROLA, INFSIECELEMENT_UZ_AU_ID, INFSIECELEMENT_DATA_AU, INFSIECELEMENT_UZ_ZM_ID, INFSIECELEMENT_DATA_ZM)
  62.                              VALUES (vEleId, LPad(vEleSym,7,'0')||'-01', 'Wodomierz konwersja', 1, 3, q.DATA_LEG1, Add_Months(Trunc(sysdate,'year'),72)-1, q.data_m, 'A',
  63.                                      'T', 'N', 'N', 'N', 1, SYSDATE, 1, SYSDATE);
  64.          -- SKLADNIK SIECI
  65.          SELECT wch.seq_infsiecskladnik.NEXTVAL INTO vSklID FROM dual;
  66.          vSklSym := vSklSym + 1;
  67.          INSERT INTO infsiecskladnik (INFSIECSKLADNIK_ID, INFSIECELEMENT_ID, INFSIECSKLADNIK_SYMBOL, INFSIECSKLADNIK_NAZWA, INFSIECSKLADNIK_TYP, GZKWODOMIERZ_ID, INFSIECSKLADNIK_DATA_OD, INFSIECSKLADNIK_UZ_AU_ID, INFSIECSKLADNIK_DATA_AU, INFSIECSKLADNIK_UZ_ZM_ID, INFSIECSKLADNIK_DATA_ZM)
  68.                               VALUES (vSklID, vEleID, LPad(vSklSym,7,'0')||'-01', 'Wodomierz '||q.YWU_NRWODOMIERZ, 0, vWodID, q.data_m, 1, SYSDATE, 1, SYSDATE);
  69.          -- ZAŁOŻENIE INSTALACJI i ODCZYTU ZEROWEGO
  70.          SELECT wch.seq_infsiecinstal.NEXTVAL INTO vInsID FROM dual;
  71.          vInsSym := vInsSym + 1;
  72.          INSERT INTO infsiecinstal (infsiecinstal_id, infsiecinstal_symbol, infsiecinstal_dataod, infsiecinstal_opis, infsiecinstal_nrsyst, infsiecinstal_stpocz, infsiecinstal_stpoczsp, infsiecskladnik_id, infsiecmiejsce_id, infsiecelement_id, infpunkt_id,
  73.                                     infsiecinstalnad_id, infsiecinstal_data_montazu, infsiecinstal_uz_au_id, infsiecinstal_data_au, infsiecinstal_uz_zm_id, infsiecinstal_data_zm)
  74.                             VALUES (vInsID, LPad(vInsSym,8,'0'), q.data_m, 'konwersja', 1, 0, 0, vSklID, q.infsiecmiejsce_Id, vEleID, q.infpunkt_Id,
  75.                                     q.nad_instal_Id, q.data_m, 1, SYSDATE, 1, SYSDATE);
  76.          SELECT wch.seq_infsieclacznik.NEXTVAL INTO vLaczID FROM dual;
  77.          INSERT INTO infsieclacznik (INFSIECLACZNIK_ID, INFSIECLACZNIK_OPIS, INFSIECLACZNIK_DATA_OD, INFSIECELEMENTNAD_ID, INFSIECELEMENTPOD_ID, INFSIECLACZNIK_PODLICZNIK, INFSIECLACZNIK_UZ_AU_ID, INFSIECLACZNIK_DATA_AU, INFSIECLACZNIK_UZ_ZM_ID, INFSIECLACZNIK_DATA_ZM)
  78.                              VALUES (vLaczID, 'Przyłącze - konwersja', q.data_m, q.nad_element_id, vEleID, 'T', 1, SYSDATE, 1, SYSDATE);
  79.          -- SIEC OKRES
  80.          INSERT INTO infsiecokres
  81.                            VALUES (wch.seq_infsiecokres.NEXTVAL, 1, q.data_m, NULL, 100, NULL, vLaczID, 1, SYSDATE, 1, SYSDATE);
  82.          INSERT INTO gzkzdli (GZKZDLI_ID, GZKZDLI_DATA, GZKZDLI_STAN, GZKZDLI_STANSPRZEz, GZKRZD_ID, GZKZDLI_NRKOLEJNY, GZKWODOMIERZ_ID, INFSIECELEMENT_ID, GZKZDLI_UWAGI, GZKZDLI_UZ_AU_ID, GZKZDLI_DATA_AU, GZKZDLI_UZ_ZM_ID, GZKZDLI_DATA_ZM)
  83.                      VALUES (wch.seq_gzkzdli.NEXTVAL, q.data_m, 0, 0, 1, 1, vWodID, vEleID, 'konwersja', 1, SYSDATE, 1, SYSDATE);
  84.          INSERT INTO gzkwododczyt (GZKWODODCZYT_ID, GZKWODODCZYT_NRSYST, GZKWODODCZYT_DATA, GZKWODODCZYT_STAN, GZKWODODCZYT_STANSPRZ, GZKWODODCZYT_RODZAJ, GZKWODODCZYT_ZUZOGOLEM, GZKWODODCZYT_ZUZOGOLEMSP, GZKWODODCZYT_OSTATNIEZUZ, GZKWODODCZYT_OSTATNIEZUZSP,
  85.                                    GZKWODODCZYT_SRZUZYDOB, GZKWODODCZYT_SRZUZYDOBSP, GZKWODODCZYT_ODCZYT, GZKWODODCZYT_ODCZYTSPRZ, GZKWODODCZYT_CZYLICZNIKSTOI, GZKWODOMIERZ_ID, INFSIECINSTAL_ID, GZKWODODCZYT_MNOZNIK, GZKWODODCZYT_MNOZNIK_SP, GZKWODODCZYT_ILOSC,
  86.                                    GZKWODODCZYT_ZUZYCIE, GZKWODODCZYT_POP_ZUZYCIE, GZKSPOSOBODCZ_ID, GZKWODODCZYT_UZ_AU_ID, GZKWODODCZYT_DATA_AU, GZKWODODCZYT_UZ_ZM_ID, GZKWODODCZYT_DATA_ZM)
  87.                            VALUES (wch.seq_gzkwododczyt.NEXTVAL, 1, q.data_m, 0, 0, 'O', 0, 0, 0, 0, 0, 0, 0, 0, 0, vWodId, vInsID, 1, 1, 0, 0, 0, 1, 1, SYSDATE, 1, SYSDATE);
  88.          INSERT INTO gzkstatusliczhist VALUES (wch.seq_gzkstatusliczhist.NEXTVAL, '2017-11-01', 4, vWodID, NULL, NULL, 2, 1, SYSDATE);
  89.          -- wpisanie danych do tabeli roboczej
  90.          UPDATE zzms_wodomierz_powiazane SET gzkwodomierz_Id = vWodID, infsiecelement_Id = vEleID, infsiecskladnik_Id = vSklID, infsiecinstal_ID = vInsID
  91.                                        WHERE yo_Id = q.yo_Id
  92.                                          AND ywu_id = q.ywu_Id
  93.                                          AND yw_id = q.yw_id;
  94.       END LOOP;
  95.    END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement