1 / 1 / 0
Регистрация: 14.12.2009
Сообщений: 12
|
||||||||||||||||
1 | ||||||||||||||||
Триггер на Insert/Update14.12.2010, 22:58. Показов 11594. Ответов 8
Метки нет (Все метки)
Вечер добрый. Создал триггер, который на Insert должен проверять есть-ли запись с некоторыми данными, если уже есть , то выдать ошибку.
Error at line 1: ORA-20999:Figure with this color already exis ORA-06512: at "SYSTEM.Game_U", line 9 ORA-04088: error during execution trigger "SYSTEM.Game_U" Триггер вроде правильный. Помогите пожалуйста разобраться,в чем может быть проблема?
0
|
14.12.2010, 22:58 | |
Ответы с готовыми решениями:
8
Триггер before insert Триггер на update Создать триггер на INSERT Не работает триггер AFTER INSERT |
68 / 66 / 3
Регистрация: 23.08.2010
Сообщений: 195
|
|
15.12.2010, 08:17 | 2 |
Проблема? Триггер выполнил вашу проверку и выдал ошибку как и было задумано вами.
0
|
1 / 1 / 0
Регистрация: 14.12.2009
Сообщений: 12
|
|
15.12.2010, 09:17 [ТС] | 3 |
так а вот это
ORA-06512: at "SYSTEM.Game_U", line 9 ORA-04088: error during execution trigger "SYSTEM.Game_U" откуда появилось?
0
|
68 / 66 / 3
Регистрация: 23.08.2010
Сообщений: 195
|
|
15.12.2010, 11:05 | 4 |
Это стек ошибок
Где возникла ошибка ORA-04088: error during execution trigger "SYSTEM.Game_U" В какой строке ORA-06512: at "SYSTEM.Game_U", line 9 Что вызвало прерывание ORA-20999:Figure with this color already exis
0
|
1 / 1 / 0
Регистрация: 14.12.2009
Сообщений: 12
|
|
15.12.2010, 11:21 [ТС] | 5 |
Спасибо большое, разобрался. Собственно , а нет функции, которая просто будет выписывать сообщение?
0
|
68 / 66 / 3
Регистрация: 23.08.2010
Сообщений: 195
|
|
15.12.2010, 11:26 | 6 |
В самом oracle только dbms_output, насколько я знаю. Вообще 1. Смотря куда выводить 2. База данных не существует сама по себе, есть еще приложение обрабатывающее те или иные события, на которые можно реагировать определенным образом исходя из функционала самого приложения.
0
|
1 / 1 / 0
Регистрация: 14.12.2009
Сообщений: 12
|
||||||
16.12.2010, 03:21 [ТС] | 7 | |||||
ora-00036:maximum number of recursive SQL levels (50) exceeded Как я понял - у меня получился в итоге рекурсивный триггер , что с ним можно сделать , чтобы он стал адекватно работать ?
0
|
68 / 66 / 3
Регистрация: 23.08.2010
Сообщений: 195
|
|||||||||||
16.12.2010, 11:13 | 8 | ||||||||||
Пересмотрите логику триггера. При выполнении insert в базу у вас может возникнуть ситуация, когда при данных переданных в триггер вы из тела триггера еще раз делаете insert, на который опять должен сработать этот же триггер и так далее.
Можно попробовать после
0
|
11 / 11 / 0
Регистрация: 09.04.2009
Сообщений: 65
|
|
18.12.2010, 11:53 | 9 |
Oracle ругаться будет, надо просто выкинуть эту строку из триггера и все. По окончании обработки триггера, Oracle сам вставит нужные данные в таблицу.
0
|
18.12.2010, 11:53 | |
18.12.2010, 11:53 | |
Помогаю со студенческими работами здесь
9
Update VS DELETE and INSERT Oracle trigger insert update Update и Insert в одном запросе Запрос одновременно содержащий UPDATE и INSERT INTO Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |