Using SPL
The EXECUTE PROCEDURE statement in the preceding trigger
calls the SPL routine that the following example shows. The procedure
uses SPL to calculate the change that needs to be made to the total_price column
when quantity is updated in the items table. The procedure
receives both the old and new values of quantity and the old
value of total_price. It divides the old total price by the
old quantity to derive the unit price. It then multiplies the unit
price by the new quantity to obtain the new total price.
CREATE PROCEDURE calc_totpr(old_qty SMALLINT, new_qty SMALLINT,
total MONEY(8)) RETURNING MONEY(8);
DEFINE u_price LIKE items.total_price;
DEFINE n_total LIKE items.total_price;
LET u_price = total / old_qty;
LET n_total = new_qty * u_price;
RETURN n_total;
END PROCEDURE;
In this example, SPL lets the trigger derive data that is not directly available from the triggering table.