Могу ли я объявить переменные внутри триггера? - PullRequest
0 голосов
/ 05 декабря 2011

Я должен написать триггер в дБ.

Я хотел объявить некоторые локальные переменные внутри него и выполнить некоторые манипуляции перед вставкой значения в таблицу.

При использовании DB2 возможно ли иметь локальные переменные внутри кода триггера?

Ответы [ 2 ]

2 голосов
/ 05 декабря 2011

Да, вы можете!

Вот пример кода (все в 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
0 голосов
/ 04 апреля 2012

Это зависит от платформы.Для платформы z / OS ответ - нет, вы не можете.z / OS по своим характеристикам отстает от других платформ.

...