powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Где ошибка в триггере?
2 сообщений из 2, страница 1 из 1
Где ошибка в триггере?
    #36713411
stavelot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В DB2 9.5 создаю триггер:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
CREATE TRIGGER TRIG1
AFTER INSERT
ON TBN1
REFERENCING NEW_TABLE AS inserted
FOR EACH STATEMENT
MODE DB2SQL
BEGIN ATOMIC
   DECLARE v_IdGoReal INTEGER;
   DECLARE v_IdParentUID INTEGER;
   DECLARE Fetch_stat INTEGER DEFAULT  0 ;
   DECLARE cur_TBN1I CURSOR    FOR
   SELECT * FROM Inserted I;
   DECLARE CONTINUE HANDLER FOR NOT FOUND SET Fetch_stat = - 1 ;
   IF EXISTS(SELECT  1  FROM Inserted I WHERE I.NewUID IS NULL) then
	
      OPEN cur_TBN1I;
      FETCH cur_TBN1I INTO v_IdGoReal,v_IdParentUID;
      WHILE Fetch_stat =  0  DO
         SWL_Label:
         WHILE  1  =  1  DO
            UPDATE TBN1 SET NewUID = v_IdParentUID WHERE IdGoReal = v_IdGoReal;
            FETCH cur_TBN1I INTO v_IdGoReal,v_IdParentUID;
            LEAVE SWL_Label;
         END WHILE;
      END WHILE;
      CLOSE cur_TBN1I;
   end if;
END

Получаю ошибку:

SQL0104N Обнаружен неправильный элемент "FOR" после текста "cur_TBN1I CURSOR". Список возможных правильных элементов: "<SQL_variable_condition_declaration> ".
...
Рейтинг: 0 / 0
Где ошибка в триггере?
    #36713928
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stavelot,

Нельзя в compound sql (dynamic) DECLARE CURSOR.
Используйте FOR.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Где ошибка в триггере?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]