zOs/SQL/TRIGGER

set current SQLID='S100447';                                            00010000
drop TRIGGER GDB0351.VFI027A1_INS;                                      00020013
CREATE TRIGGER GDB0351.VFI027A1_INS INSTEAD OF INSERT ON                00030034
GDB0351.VFI027A1                                                        00040034
REFERENCING NEW_table AS n FOR EACH row       MODE DB2SQL               00050034
begin atomic                                                            00060034
--#SET TERMINATOR ?                                                     00070026
INSERT INTO gdb0351.TFI027A1                                            00080033
     select                          n.TKKEY                            00090033
                                    ,n.BOERSE                           00100033
                                    ,n.WHRG                             00110033
                                    ,n.KURSDATUM                        00120033
                                    ,n.TK_KURSTYP                       00130033
                                    ,n.TK_ZUSATZ                        00140033
                                    ,n.GENERATION                       00150033
                                    ,n.MUT_TIMESTAMP                    00160033
                                    ,n.CS_KA_NUM                        00170033
                                    ,n.SETT_CODE                        00180033
                                    ,n.KURS_LIEFERUNG                   00190033
                                    ,n.KURS_UMRECHNUNG                  00200033
                                    ,n.WHR_UMR                          00210033
                                    ,n.MENGE                            00220033
                                    ,n.BOERSE_TK                        00230033
                                    ,n.ERSTELLUNG                       00240033
                                    ,n.FLAG_P                           00250033
                                    ,n.STATUS                           00260033
                                    ,n.GUELTIG_VON                      00270033
                                    ,n.QUELLE                           00280033
                                    ,n.LOG_EINTRAG                      00290033
                                    ,n.INSTRAD                          00300033
                                    ,n.MUT_STAT                         00310033
                                    ,n.KS_BPL_ST                        00320033
                                    ,n.KS_BPL_HT                        00330033
                                    ,n.KS_BPL_KS                        00340033
                                    ,n.KS_ALT_KS                        00350033
                                    ,n.KS_BPL_HA                        00360033
                                    ,n.KS_AIS_SP                        00370033
                                    ,n.KS_BPL_IN                        00380033
                                    ,n.KS_BPL_SP                        00390033
                                    ,n.VERFALL                          00400033
                                    ,n.rowid                            00410033
             from n where tkkey < 1000000                               00420033
;                                                                       00430033
INSERT INTO F383353.TFI027B1                                            00440033
   select                            n.TKKEY                            00450033
                                    ,n.TKKEY                            00460033
                                    ,n.BOERSE                           00470033
                                    ,n.WHRG                             00480033
                                    ,n.KURSDATUM                        00490033
                                    ,n.TK_KURSTYP                       00500033
                                    ,n.TK_ZUSATZ                        00510033
                                    ,n.GENERATION                       00520033
                                    ,n.MUT_TIMESTAMP                    00530033
                                    ,n.CS_KA_NUM                        00540033
                                    ,n.SETT_CODE                        00550033
                                    ,n.KURS_LIEFERUNG                   00560033
                                    ,n.KURS_UMRECHNUNG                  00570033
                                    ,n.WHR_UMR                          00580033
                                    ,n.MENGE                            00590033
                                    ,n.BOERSE_TK                        00600033
                                    ,n.ERSTELLUNG                       00610033
                                    ,n.FLAG_P                           00620033
                                    ,n.STATUS                           00630033
                                    ,n.GUELTIG_VON                      00640033
                                    ,n.QUELLE                           00650033
                                    ,n.LOG_EINTRAG                      00660033
                                    ,n.INSTRAD                          00670033
                                    ,n.MUT_STAT                         00680033
                                    ,n.KS_BPL_ST                        00690033
                                    ,n.KS_BPL_HT                        00700033
                                    ,n.KS_BPL_KS                        00710033
                                    ,n.KS_ALT_KS                        00720033
                                    ,n.KS_BPL_HA                        00730033
                                    ,n.KS_AIS_SP                        00740033
                                    ,n.KS_BPL_IN                        00750033
                                    ,n.KS_BPL_SP                        00760033
                                    ,n.VERFALL                          00770033
             from n where tkkey between 1000000 and 1999999             00780033
;                                                                       00790033
END                                                                     00800033
?                                                                       00810033
--#SET TERMINATOR ;                                                     00820033
commit;                                                                 00830033
;x;                                                                     00840033
                                                                        00850033
alle andere Versuche funktionieren nicht|                               00860033
if und case statements sind nicht erlaubt                               00870033
select ... insert innerhalb case ist auch nicht erlaubt ......          00880033
                                                                        00890033
;x;                                                                     00900033
--#SET TERMINATOR ?                                                     00910033
CREATE TRIGGER GDB0351.VFI027A1_INS INSTEAD OF INSERT ON                00920033
GDB0351.VFI027A1                                                        00930033
REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL                           00940033
begin atomic                                                            00950033
INSERT INTO gdb0351.TFI027A1 VALUES (n.TKKEY                            00960033
                                    ,n.BOERSE                           00970033
                                    ,n.WHRG                             00980033
                                    ,n.KURSDATUM                        00990033
                                    ,n.TK_KURSTYP                       01000033
                                    ,n.TK_ZUSATZ                        01010033
                                    ,n.GENERATION                       01020033
                                    ,n.MUT_TIMESTAMP                    01030033
                                    ,n.CS_KA_NUM                        01040033
                                    ,n.SETT_CODE                        01050033
                                    ,n.KURS_LIEFERUNG                   01060033
                                    ,n.KURS_UMRECHNUNG                  01070033
                                    ,n.WHR_UMR                          01080033
                                    ,n.MENGE                            01090033
                                    ,n.BOERSE_TK                        01100033
                                    ,n.ERSTELLUNG                       01110033
                                    ,n.FLAG_P                           01120033
                                    ,n.STATUS                           01130033
                                    ,n.GUELTIG_VON                      01140033
                                    ,n.QUELLE                           01150033
                                    ,n.LOG_EINTRAG                      01160033
                                    ,n.INSTRAD                          01170033
                                    ,n.MUT_STAT                         01180033
                                    ,n.KS_BPL_ST                        01190033
                                    ,n.KS_BPL_HT                        01200033
                                    ,n.KS_BPL_KS                        01210033
                                    ,n.KS_ALT_KS                        01220033
                                    ,n.KS_BPL_HA                        01230033
                                    ,n.KS_AIS_SP                        01240033
                                    ,n.KS_BPL_IN                        01250033
                                    ,n.KS_BPL_SP                        01260033
                                    ,n.VERFALL                          01270033
                                    ,n.rowid);                          01280033
INSERT INTO F383353.TFI027B1 VALUES (n.TKKEY                            01290033
                                    ,n.TKKEY                            01300033
                                    ,n.BOERSE                           01310033
                                    ,n.WHRG                             01320033
                                    ,n.KURSDATUM                        01330033
                                    ,n.TK_KURSTYP                       01340033
                                    ,n.TK_ZUSATZ                        01350033
                                    ,n.GENERATION                       01360033
                                    ,n.MUT_TIMESTAMP                    01370033
                                    ,n.CS_KA_NUM                        01380033
                                    ,n.SETT_CODE                        01390033
                                    ,n.KURS_LIEFERUNG                   01400033
                                    ,n.KURS_UMRECHNUNG                  01410033
                                    ,n.WHR_UMR                          01420033
                                    ,n.MENGE                            01430033
                                    ,n.BOERSE_TK                        01440033
                                    ,n.ERSTELLUNG                       01450033
                                    ,n.FLAG_P                           01460033
                                    ,n.STATUS                           01470033
                                    ,n.GUELTIG_VON                      01480033
                                    ,n.QUELLE                           01490033
                                    ,n.LOG_EINTRAG                      01500033
                                    ,n.INSTRAD                          01510033
                                    ,n.MUT_STAT                         01520033
                                    ,n.KS_BPL_ST                        01530033
                                    ,n.KS_BPL_HT                        01540033
                                    ,n.KS_BPL_KS                        01550033
                                    ,n.KS_ALT_KS                        01560033
                                    ,n.KS_BPL_HA                        01570033
                                    ,n.KS_AIS_SP                        01580033
                                    ,n.KS_BPL_IN                        01590033
                                    ,n.KS_BPL_SP                        01600033
                                    ,n.VERFALL                          01610033
                                    );                                  01620033
END                                                                     01630033
?                                                                       01640033
--#SET TERMINATOR ;                                                     01650033
CREATE TRIGGER GDB0351.VFI027A1_INS INSTEAD OF INSERT ON                01660026
GDB0351.VFI027A1                                                        01670026
REFERENCING NEW       AS n FOR EACH row       MODE DB2SQL               01680026
begin atomic                                                            01690026
values ( (                                                              01700032
--( --case                                                              01710030
  --  when n.tkkey < 1000000 then                                       01720029
        select 'a' from final table                                     01730030
          ( INSERT INTO gdb0351.TFI027A1 VALUES (n.TKKEY                01740027
                                    ,n.BOERSE                           01750027
                                    ,n.WHRG                             01760027
                                    ,n.KURSDATUM                        01770027
                                    ,n.TK_KURSTYP                       01780027
                                    ,n.TK_ZUSATZ                        01790027
                                    ,n.GENERATION                       01800027
                                    ,n.MUT_TIMESTAMP                    01810027
                                    ,n.CS_KA_NUM                        01820027
                                    ,n.SETT_CODE                        01830027
                                    ,n.KURS_LIEFERUNG                   01840027
                                    ,n.KURS_UMRECHNUNG                  01850027
                                    ,n.WHR_UMR                          01860027
                                    ,n.MENGE                            01870027
                                    ,n.BOERSE_TK                        01880027
                                    ,n.ERSTELLUNG                       01890027
                                    ,n.FLAG_P                           01900027
                                    ,n.STATUS                           01910027
                                    ,n.GUELTIG_VON                      01920027
                                    ,n.QUELLE                           01930027
                                    ,n.LOG_EINTRAG                      01940027
                                    ,n.INSTRAD                          01950027
                                    ,n.MUT_STAT                         01960027
                                    ,n.KS_BPL_ST                        01970027
                                    ,n.KS_BPL_HT                        01980027
                                    ,n.KS_BPL_KS                        01990027
                                    ,n.KS_ALT_KS                        02000027
                                    ,n.KS_BPL_HA                        02010027
                                    ,n.KS_AIS_SP                        02020027
                                    ,n.KS_BPL_IN                        02030027
                                    ,n.KS_BPL_SP                        02040027
                                    ,n.VERFALL                          02050027
                                    ,n.rowid                            02060028
                                    )                                   02070028
  ))      ) ;                                                           02080032
  --  )                                                                 02090030
 -- when n.tkkey between 1000000 and 1999999 then 'b'                   02100029
--end                                                                   02110029
--) ;                                                                   02120031
end                                                                     02130028
? ? x?                                                                  02140028