|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.11.2012, 18:33 | #1 |
Пользователь
Регистрация: 06.11.2007
Сообщений: 47
|
NEW значение в UPDATE триггере Oracle
Здравствуйте, есть такой триггер с курсором
Код:
Код:
Код:
|
06.11.2012, 19:59 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
http://oracle-error.blogspot.com/200...g-trigger.html
Перепиши триггер так, чтоб он эту таблицу не пытался читать (не запрашивал с нее набор через SELECT)
I'm learning to live...
|
07.11.2012, 02:52 | #3 |
Пользователь
Регистрация: 06.11.2007
Сообщений: 47
|
А если мне надо её прочитать, никак не сделать? Просто мне нужно получить значения полей обновляемой строки. Я раньше с oracle не работал и кроме как обращения к :NEW ничего в голову не приходит.
|
07.11.2012, 09:41 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
|
|
07.11.2012, 16:16 | #5 |
Пользователь
Регистрация: 06.11.2007
Сообщений: 47
|
А как получить значение нового, обновляемого поля, ради которого собственно триггер и писался? А то как-то странно, триггер на BEFORE UPDATE, а новое введённое значение получить, чтобы его как-то проверить, не получается.
Последний раз редактировалось Raz0r; 07.11.2012 в 16:24. |
07.11.2012, 16:22 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
простите, не понял вопроса..
те значения, которые в данный момент в таблице - доступны через :OLD те значения, которые, собственно, будут записаны в таблицу, доступны через :NEW Вы что хотите получить то?! Для чего триггер нужен? |
07.11.2012, 17:50 | #7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Что-то типа синхронизации - изменение значения в одном поле должно повлиять на остальные с таким же значением. Если я угадал, то триггером тут не стоит пользоваться. Раз уж ты хочешь скрыть с глаз механику запроса - напиши пакет или просто отдельную процедуру, передавай в нее параметры, и в теле процедуры пропиши обновление. И пусть в клиенте используется эта процедура вместо открытого UPDATE запроса
I'm learning to live...
|
||
07.11.2012, 20:15 | #8 |
Пользователь
Регистрация: 06.11.2007
Сообщений: 47
|
Всем спасибо за ответы, разобрался. Ошибка была в том, что я в теле триггера пытался прочитать из обновляемой таблицы. Отсюда и сообщение о 'mutating table'. А в BEFORE триггере есть и OLD и NEW тут было всё правильно)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти значение на другом листе и подставить значение следующей ячейки | ElenaNTro | Microsoft Office Excel | 12 | 11.02.2019 12:44 |
update | kilogram | SQL, базы данных | 1 | 27.06.2012 16:33 |
Как просуммировать ячейки в которых значение более трех и значение болеетрех ячеек подряд? | maruk | Microsoft Office Excel | 9 | 30.04.2011 00:07 |
Oracle+PHP как правильно получить значение | Nexta_s | PHP | 1 | 03.03.2011 16:26 |
Update | usmesn | PHP | 3 | 02.06.2010 17:23 |