1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| create or replace trigger "T_DR_K"
BEFORE
insert on "P_HW"
for each row
-- Dieser Trigger generiert ein Primärschlüssel für Tabelle P_HW
-- and insert values into table Printer
begin
DECLARE
CHD varCHAR(5);
N NUMBER(2);
NN NUMBER(4);
CH1 CHAR(3);
ART P_HW.PH_ART%TYPE;
BEZ P_HW.PH_BEZ%TYPE;
LIEF P_HW.PH_LIEF%TYPE;
LIEF_DAT P_HW.PH_LIEF_DAT%TYPE;
FREIGAB_NR P_HW.PH_FREIGAB_NR%TYPE;
BEST_NR P_HW.PH_BEST_NR%TYPE;
BEM P_HW.PH_BEM%TYPE;
BEST_DAT P_HW.PH_BEST_DAT%TYPE;
FREIGAB_DAT P_HW.PH_FREIGAB_DAT%TYPE;
HERST P_HW.PH_HERST%TYPE;
PREIS P_HW.PH_PREIS%TYPE;
BEGIN
CHD:=F_DR_K;
:NEW.PH_ART:=CHD;
N:=:NEW.PH_ST;
IF N <> 0 THEN
begin
FOR I IN 1..N LOOP
SELECT S_DR_K.NEXTVAL
INTO NN
FROM DUAL;
CH1:=LPAD(NN,3,'0');
SELECT PH_ART, PH_BEZ, PH_LIEF, PH_LIEF_DAT, PH_FREIGAB_NR, PH_BEST_NR, PH_BEM, PH_BEST_DAT, PH_FREIGAB_DAT, PH_HERST, PH_PREIS
INTO ART,BEZ,LIEF,LIEF_DAT,FREIGAB_NR,BEST_NR,BEM,BEST_DAT,FREIGAB_DAT,HERST,PREIS
FROM P_HW
WHERE :NEW.PH_ART=PH_ART;
INSERT INTO PRINTER(P_NR, P_ART, P_BEZ, P_LIEF, P_LIEF_DAT, P_FREIGAB_NR, P_BEST_NR, P_BEM, P_BEST_DAT, P_FREIGAB_DAT, P_HERST, P_PREIS)
VALUES (CH1,ART,BEZ,LIEF,LIEF_DAT,FREIGAB_NR,BEST_NR,BEM,BEST_DAT,FREIGAB_DAT,HERST,PREIS);
END LOOP;
end;
END IF;
END;
end; |