powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите с созданием триггера на AS400
4 сообщений из 4, страница 1 из 1
Помогите с созданием триггера на AS400
    #35330354
TriggerHelp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Не могу создать триггер на AS400. Вот код:

Код: plaintext
1.
2.
3.
4.
create trigger as.kntoldtrigger before insert on as.employee
REFERENCING NEW AS mynewrows 
for each row mode db2sql 
begin atomic 
delete from as.employee where id=mynewrows.oldid end

выкидывает следующую ошибку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SQL State: 0W000
Vendor Code: - 751 
Message: [SQL0751] SQL statement *N not allowed. Cause . . . . . :   The statement *N is not allowed 
in a stored procedure, user-defined function, or trigger. -- Statements not allowed in a trigger program 
are CONNECT, SET CONNECTION, RELEASE, DISCONNECT, and SET RESULT SETS. -- RUNSQLSTM is not 
allowed in a trigger program. -- COMMIT and ROLLBACK are not allowed in a trigger program if the 
trigger program is running in the same activation group as the triggering program.  COMMIT and 
OLLBACK are not allowed in an SQL trigger. -- ALTER TABLE is not allowed in a trigger program when 
commitment control is active. -- Statements not allowed in a stored procedure or user-defined function 
that is running on a remote application server are CONNECT, SET CONNECTION, RELEASE, DISCONNECT, 
COMMIT, ROLLBACK, and SET TRANSACTION. -- Statements not allowed in an SQL BEFORE trigger are 
INSERT, UPDATE, DELETE, ALTER TABLE, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME, 
REVOKE, REFRESH TABLE, and ALTER PROCEDURE. -- The RETURN statement is not allowed in an SQL 
trigger. -- Statements not allowed in a secondary thread are CREATE TRIGGER, CREATE FUNCTION 
(SQL), CREATE PROCEDURE (SQL), and ALTER PROCEDURE (SQL). Recovery  . . . :   Remove the 
statement *N from your trigger program, user-defined function, or stored procedure. Try the request 
again.


Processing ended because the highlighted statement did not complete successfully

Данный тригер должен удалить запись из таблицы as.employee при инсерте новой записи с условием того что он найдет в as.employee эту запись
...
Рейтинг: 0 / 0
Помогите с созданием триггера на AS400
    #35330558
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В триггерах BEFORE нельзя делать никаких операций с базой данных на запись. Можно только селекты и переустанавливать поля. Проверять значения и возвращать ошибку если что не так.
...
Рейтинг: 0 / 0
Помогите с созданием триггера на AS400
    #35330701
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему нельзя-то, это же AS/400. по крайней мере на С у меня получалось написать такое в триггере, а как на SQL не знаю.

мне кажется begin atomic нельзя делать.
впрочем это так, предположения.
...
Рейтинг: 0 / 0
Помогите с созданием триггера на AS400
    #35330740
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Прочитайте тут про before SQL trigger.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите с созданием триггера на AS400
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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