Sample of passing transition tables from trigger to stored procedure
--#SET TERMINATOR #
CREATE TRIGGER <TRIGGER_NAME>
AFTER UPDATE ON <USER_TABLE>
REFERENCING NEW TABLE AS N
OLD TABLE AS O
FOR EACH STATEMENT MODE DB2SQL
BEGIN ATOMIC
CALL <PROC_NAME>(TABLE O, TABLE N);
END#
CREATE PROCEDURE <PROC_NAME>(O TABLE LIKE <USER_TABLE>AS LOCATOR,
N TABLE LIKE <USER_TABLE>AS LOCATOR)
LANGUAGE SQL
BEGIN
DECLARE V_COL1 INTEGER;
DECLARE V_COL2 CHAR(4);
DECLARE V_END INT DEFAULT 0;
DECLARE V_COUNT INTEGER;
DECLARE V_CO CURSOR FOR SELECT COL1, COL1 FROM TABLE(O LIKE <USER_TABLE>) AS OLDTAB;
DECLARE V_CN CURSOR FOR SELECT COL1, COL1 FROM TABLE(N LIKE <USER_TABLE>) AS NEWTAB;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET V_END = 1;
SELECT COUNT(*) INTO V_COUNT FROM TABLE(O LIKE <USER_TABLE>);
OPEN V_CN;
FETCH V_CN INTO V_COL1, V_COL2;
WHILE V_END = 0 DO
-- DEAL WITH DATA VALUE
-- INSERT INTO <ANOTHER_TABLE> VALUES(V_COL1, V_COL2);
FETCH V_CN INTO V_COL1, V_COL2;
END WHILE;
CLOSE V_CN;
END#
$ db2 -f script.sql