Я должен написать триггер в дБ.
Я хотел объявить некоторые локальные переменные внутри него и выполнить некоторые манипуляции перед вставкой значения в таблицу.
При использовании DB2 возможно ли иметь локальные переменные внутри кода триггера?
Да, вы можете!
Вот пример кода (все в SQL) из iSeries DB2 SQL Programming manual (который имеет тенденцию запускать несколько версий за LUW):
CREATE TRIGGER TransactionBeforeTrigger BEFORE INSERT ON TransactionTable REFERENCING NEW AS new_row FOR EACH ROW MODE DB2ROW BEGIN DECLARE newmonth SMALLINT; -- Here's the decleration SET newmonth = MONTH(new_row.DateOfTransaction); IF newmonth < 4 THEN SET new_row.FiscalQuarter=3; ELSEIF newmonth < 7 THEN SET new_row.FiscalQuarter=4; ELSEIF newmonth < 10 THEN SET new_row.FiscalQuarter=1; ELSE SET new_row.FiscalQuarter=2; END
Это зависит от платформы.Для платформы z / OS ответ - нет, вы не можете.z / OS по своим характеристикам отстает от других платформ.