DB2 перед синтаксисом триггера

#sql #database #plsql #db2 #db2-express-c

#sql #База данных #plsql #db2 #db2-express-c

Вопрос:

Я определил этот триггер:

 CREATE TRIGGER actualizarSaldoIngreso
BEFORE INSERT ON Ingreso
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
    UPDATE Cliente SET Nombre = 'Juan' WHERE DNI = '87366034M';
END;
  

Но DB2 возвращает эту ошибку:

 An unexpected token "END-OF-STATEMENT" was found following "RE DNI = '87366034M'". Expected tokens may include: "<delim_semicolon>"
  

Есть идеи?

Ответ №1:

Вам нужно изменить терминатор следующим образом :

 --#SET TERMINATOR @
CREATE TRIGGER actualizarSaldoIngreso
BEFORE INSERT ON Ingreso
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
    UPDATE Cliente SET Nombre = 'Juan' WHERE DNI = '87366034M';
END@
--#SET TERMINATOR ;
  

С другим терминатором пакет не выполняется преждевременно.