Witam
Mam pewien problem z prostym update'm.
mam 2 tabele
- inventory_part_tab (part_no,part_product_family)
- z_zmiana_rodzin (indeks,rodzina)
w tabeli inventory_part_tab chce zmodyfikowac wartosc z pola part_product_family zastepujac ja wartoscia z tabeli z_zmiana_rodzin z pola rodzina. Oczywiscie laczymy tabele po part_no = indeks. Warunek jest taki, żeby nie zamieniać gdy rodzina = 0 i rodzina = null.
DECLARE v_rodzina VARCHAR(50);
CURSOR c_data IS
select distinct inv.part_no from inventory_part_tab inv , z_zmiana_rodzin zmi where inv.part_no = zmi.indeks ;
c_val c_data%ROWTYPE;
BEGIN
OPEN C_data;
LOOP
FETCH C_DATA INTO C_VAL;
EXIT WHEN C_DATA%NOTFOUND;
BEGIN
SELECT MAX(rodzina)
INTO v_rodzina
FROM z_zmiana_rodzin WHERE indeks = c_val.part_no;
UPDATE inventory_part_tab
SET part_product_family = v_rodzina
WHERE part_no = c_val.part_no and rodzina is not null and rodzina <>0 ;
END;
END LOOP;
CLOSE C_data ;
Dobrze rozumuję?