Witajcie
mam coś takiego (poniżej) i potrzebuję aby dla każdego wyniku w pętli for dodał się osobny wiersz w tabeli, proszę o pomoc.
Oraz drugie pytanie
Czy kolumna TYP_WEZLA może być typem NUMBER, jeśli ustawię ją w typ NUMBER dostaję info, że wprowadzone dane nie są NUMBER, a przecież zamieniam stringa na 0 albo 1.
CREATE OR REPLACE TRIGGER BEFORE_INSERT_WEZLY BEFORE INSERT ON WEZLY REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW BEGIN <<START_TRIGGER>> IF :NEW.TYP_WEZLA LIKE 'a' THEN :NEW.TYP_WEZLA := 1; END IF; IF :NEW.TYP_WEZLA LIKE 'b' THEN :NEW.TYP_WEZLA := 0; END IF; IF :NEW.TYP_WEZLA = 0 THEN FOR i IN (SELECT LEVEL, trim(regexp_substr(:NEW.GREEN_NUMBER_OF_BOX_STRING, '[^,]+', 1, LEVEL)) NODE FROM dual CONNECT BY regexp_substr(:NEW.GREEN_NUMBER_OF_BOX_STRING , '[^,]+', 1, LEVEL) IS NOT NULL ) LOOP SELECT WEZLY_SEQUENCE.NEXTVAL INTO :NEW.ID FROM DUAL; END LOOP; END IF; END;
Kolumna TYP_WEZLA oczywiście może być NUMBER, ale musiałbyś zmienić wprowadzanie danych.
IF :NEW.TYP_WEZLA LIKE 'a' THEN :NEW.TYP_WEZLA := 1; END IF;
Czy dobrze rozumiem, że powinienem wpisać
IF :OLD.TYP_WEZLA LIKE 'a' THEN :NEW.TYP_WEZLA := 1; END IF;
Źle rozumiesz. Jeśli jest typ kolumny NUMBER, to ani w OLD, anie w NEW nie ma prawa znaleźć się 'a'.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)