![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 06.11.2007
Сообщений: 47
|
![]()
Здравствуйте, есть такой триггер с курсором
Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
http://oracle-error.blogspot.com/200...g-trigger.html
Перепиши триггер так, чтоб он эту таблицу не пытался читать (не запрашивал с нее набор через SELECT)
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 06.11.2007
Сообщений: 47
|
![]()
А если мне надо её прочитать, никак не сделать? Просто мне нужно получить значения полей обновляемой строки. Я раньше с oracle не работал и кроме как обращения к :NEW ничего в голову не приходит.
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 06.11.2007
Сообщений: 47
|
![]()
А как получить значение нового, обновляемого поля, ради которого собственно триггер и писался? А то как-то странно, триггер на BEFORE UPDATE, а новое введённое значение получить, чтобы его как-то проверить, не получается.
Последний раз редактировалось Raz0r; 07.11.2012 в 16:24. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
простите, не понял вопроса..
те значения, которые в данный момент в таблице - доступны через :OLD те значения, которые, собственно, будут записаны в таблицу, доступны через :NEW Вы что хотите получить то?! Для чего триггер нужен? |
![]() |
![]() |
![]() |
#7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]() Цитата:
Что-то типа синхронизации - изменение значения в одном поле должно повлиять на остальные с таким же значением. Если я угадал, то триггером тут не стоит пользоваться. Раз уж ты хочешь скрыть с глаз механику запроса - напиши пакет или просто отдельную процедуру, передавай в нее параметры, и в теле процедуры пропиши обновление. И пусть в клиенте используется эта процедура вместо открытого UPDATE запроса ![]()
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#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 |