Hi All,
I am not new to databases by to db2 indeed yes...and I am finding
significant procedural limitations in DB2 triggers when compared to
procedures...this becomes more limiting when you try tto migrate db
triggers from an existing db...anyway here is a trigger which I am
finding problems please help with synntax you can ...I am using db udb
8.1 on windows...
see the error message very down below
--------------------------------------------------------------
CREATE TRIGGER Trg_UpdFieldName AFTER UPDATE ON
ADE_RULE_PARAMETER_FIELDS
REFERENCING OLD AS DELETED NEW AS INSERTED FOR EACH STATEMENT MODE
DB2SQL
BEGIN ATOMIC
DECLARE v_Rule_Parameter_FieldName VARCHAR(120);
DECLARE v_Rule_Parameter_FieldID INTEGER;
DECLARE v_Rule_Parameter_FieldName_old VARCHAR(120);
DECLARE SQLSTATE varchar(5);
LOOP_LABEL: FOR curFOR AS cur CURSOR FOR SELECT
Rule_Parameter_FieldID,Rule_Parameter_FieldName FROM inserted
DO
FETCH FROM curFOR INTO
v_Rule_Parameter_FieldID,v_Rule_Parameter_FieldNam e;
IF SQLSTATE='00000' THEN
LEAVE LOOP_LABEL;
END IF;
SELECT Rule_Parameter_FieldName INTO
v_Rule_Parameter_FieldName_old FROM deleted WHERE
Rule_Parameter_FieldID = v_Rule_Parameter_FieldID FETCH FIRST 1 ROWS
ONLY ;
SET (v_Rule_Parameter_FieldName_old) = (SELECT
Rule_Parameter_FieldName FROM deleted WHERE Rule_Parameter_FieldID =
v_Rule_Parameter_FieldID FETCH FIRST 1 ROWS ONLY);
IF v_Rule_Parameter_FieldName_old <>
v_Rule_Parameter_FieldName THEN
UPDATE ADE_RULE_SEGMENT SET Rule_Parameter_FieldName =
v_Rule_Parameter_FieldName WHERE Rule_Parameter_FieldName =
v_Rule_Parameter_FieldName_old;
END IF;
END FOR
END;
problem--------------------
END FOR END
DB21034E The command was processed as an SQL statement because it was
not a
valid Command Line Processor command. During SQL processing it
returned:
SQL0104N An unexpected token "FOR" was found following "END ".
Expected
tokens may include: "JOIN <joined_table>". SQLSTATE=42601