Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / trigger ... after insert / 4 сообщений из 4, страница 1 из 1
05.06.2006, 18:23
    #33773162
db222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger ... after insert
дайте, пожалуйста, ссылку на документацию (можно англоязычную),
в которой четко говориться о правилах использования (точнее НЕ-использования) NEW в триггерах AFTER INSERT,
например недопустимости конструкций вида:

Код: plaintext
1.
2.
CREATE TRIGGER DocIns AFTER INSERT ON Doc 
REFERENCING NEW AS NEWR FOR EACH ROW
SET NEWR.Creator = USER; 
...
Рейтинг: 0 / 0
05.06.2006, 18:51
    #33773240
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger ... after insert
внимательно прочитайте вывод команды
Код: plaintext
db2 ? sql0797
там написано, что в after триггерах вы не можете делать
set транзитным переменным.
...
Рейтинг: 0 / 0
05.06.2006, 19:04
    #33773274
db222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger ... after insert
Mark Barinsteinвнимательно прочитайте вывод команды
Код: plaintext
db2 ? sql0797
там написано, что в after триггерах вы не можете делать
set транзитным переменным.

странно...
вот из http://publib.boulder.ibm.com/infocenter/db2luw/v8//index.jsp?topic=/com.ibm.db2.udb.doc/ad/t0006419.htm

Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Триггер имя-триггера задан с триггерным оператором SQL, который не поддерживается. 
Объяснение: 
В триггерном операторе SQL допустимы только операторы из следующего списка. 

Триггер может включать следующие управляющие операторы: 
динамический составной оператор 
оператор FOR 
оператор GET DIAGNOSTICS 
оператор IF 
оператор ITERATE 
оператор LEAVE 
оператор SIGNAL 
оператор WHILE 
Триггер BEFORE может также включать следующие триггерные операторы SQL: 
оператор CALL, вызывающий процедуру, которая не изменяет данные SQL 
оператор полной выборки 
оператор назначения 
Однако в триггерные операторы SQL в триггере BEFORE не могут входить: 

табличная функция SQL, изменяющая данные SQL 
вложенный оператор DELETE, INSERT, MERGE или UPDATE 
Триггер AFTER может также включать следующие триггерные операторы SQL: 
оператор INSERT 
оператор UPDATE с поиском 
оператор DELETE с поиском 
оператор MERGE 
оператор CALL 
полную выборку 
оператор назначения (исключая назначение переменных перехода) 
Триггер INSTEAD OF может также включать следующие триггерные операторы SQL: 
оператор INSERT 
оператор UPDATE с поиском 
оператор DELETE с поиском 
оператор MERGE 
оператор CALL 
полную выборку 
оператор назначения (исключая назначение переменных перехода) 
В некоторых случаях имя-триггера в сообщении не приводится. 

Действия пользователя: 
Найдите в триггере все триггерные операторы SQL, не соответствующие приведенному списку, и удалите их. 

sqlcode : - 797  

sqlstate :  42987  
...
Рейтинг: 0 / 0
05.06.2006, 19:47
    #33773349
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger ... after insert
"назначение переменных перехода" - это пять.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / trigger ... after insert / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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