powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-04091: таблица изменяется, триггер/функция может не заметить это
22 сообщений из 22, страница 1 из 1
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32803994
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка
ORA-04091: таблица DATA.ACC изменяется, триггер/функция может не заметить это ORA-06512: на "DATA.FE_T_ACC_UP_CUS", line 15 ORA-04088: ошибка во время выполнения триггера 'DATA.FE_T_ACC_UP_CUS'


как бороться с этим?
При вставке/обновлении проверяется,
что мы ссылаемся не на самый нижний уровень дерева.
(ведется и поддерживается триггерами поле-признак
возможности добавление детей в ветку)
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804007
Калина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как оказвается ужасно все выглядит в переводе, я даже не понял о чем речь.
Можно конечно посмотреть тело триггера, однако я склоняюсь к тому, что автономные транзакции вас спасут
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804046
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE OR REPLACE TRIGGER ACC_UP_CUS BEFORE UPDATE  	ON ACC for each ROW
DECLARE   ggg raw( 16 ); 
BEGIN
   --'Родителем не может быть неконечный счет.';
   begin
     SELECT   1  into lvflag   from  acc   
     where rownum= 1    AND pk=:new.parent AND chend= 1 ;
     Raise_application_error(- 20000 , TO_CHAR(:new.parent));
   exception when no_data_found then null; 
   end ;
END;

...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804129
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Калиная склоняюсь к тому, что автономные транзакции вас спасутНе спасут. Поскольку результат проверки в автономной и в основной транзакциях может различаться, и как следствие этого - нарушение логической целостности данных.
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804141
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это как правило единичные операции -
реакция на действия пользователя в интерфейсе.
На вход приходит в основном 1 строка.
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804150
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Калина
Можно конечно посмотреть тело триггера, однако я склоняюсь к тому, что автономные транзакции вас спасут
что за автономныке транзакции?
Как ее организовать ?
и как она меня спасет?
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804155
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если все проверки вынести в функцию,
которую вызывать в триггере - это его полечит?
(ошибка пропадет?)
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804167
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kto-to ОшибкаORA-04091как бороться с этим?Ёлы-палы, ведь есть же поиск .
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804236
Мастер SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стандартный глюк у начинающих писать триггера.
! Нельзя читать из таблицы которую обновляешь в триггере FOR EACH ROW
Есть стандартные процедуры обхода мутирования, учите мат часть!!!

С уважением, Мастер SQL
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804279
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мастер SQLСтандартный глюк у начинающих писать триггера.
! Нельзя читать из таблицы которую обновляешь в триггере FOR EACH ROW
Есть стандартные процедуры обхода мутирования, учите мат часть!!!

С уважением, Мастер SQL

3.1415926-ец .....
Вместо того чтобы раскидывать пальцы во все стороны
просто показал бы как решить эту конкретную ситуацию.
А то понтов больше чем знаний.

все обходитсяя в данном случае просто
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE OR REPLACE TRIGGER ACC_UP_CUS
AFTER UPDATE  	ON ACC for each ROW
DECLARE      lvflag number; 
PRAGMA AUTONOMOUS_TRANSACTION; 
BEGIN
...
COMMIT;
END;
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804294
KonstN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 kto-to
Не всегда автономные транзакции помогают, посмотри на всякий случай
http://asktom.oracle.com/~tkyte/Mutate/index.html
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804347
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kto-toвсе обходитсяя в данном случае просто
Код: plaintext
... PRAGMA AUTONOMOUS_TRANSACTION; ...
:) Наивный. Автономные транзакции - не панацея . Особенно при реализации ограничений целостности данных.
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804444
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicОсобенно при реализации ограничений целостности данных.

Я каждый раз буду видеть данные на момент начала основной транзакци*
(с некоторыми оговорками).

Все обновления которые противоречат этой структуре не пройдут.
Ссылаться из вставляемых данных на данные, которые вставляются
врятли будут, т.к они идут атомарными операциями из интерфейса
(и никто такие динозавры не будет создавать)

А вообще лажевая реализация мутирующих триггеров в оракле,
ведь я ничего super-pupper реализовывать не хотел.

Кстати не видет ли в таблице
AFTER EACH ROW триггер строку, которая его породила?
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804461
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicАвтономные транзакции - не панацея
Предложи другой выход, чтобы не пришлось городить
хитроумной работы с временными/постоянными таблицами
для хранения списка гуидов.
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804464
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как включить грязное чтение в автономной/любой транзакции?
похоже это меня может спасти.
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804479
KonstN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет такого в Оракле.
Только не начинай флейм про нужно или не нужно оно здесь - его просто нет.
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804491
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstN2 kto-to
Не всегда автономные транзакции помогают, посмотри на всякий случай
http://asktom.oracle.com/~tkyte/Mutate/index.html

Спасибо. Это буду делать когда припечет.
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804494
kto-to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstNНет такого в Оракле.
Только не начинай флейм про нужно или не нужно оно здесь - его просто нет.
нет так нет. хотя не скрою меня это огорчает.
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804557
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kto-toКстати не видет ли в таблице
AFTER EACH ROW триггер строку, которая его породила?Мутация относится не к какой-то строке, а ко всей таблице. kto-toПредложи другой выход, чтобы не пришлось городить
хитроумной работы с временными/постоянными таблицами
для хранения списка гуидов.В предложенном поиске анти-мутаций предостаточно.

А по поводу integrity - надежную гарантию твоей целостности данных даст, IMHO, только блокировка папы с момента проверки до завершения транзакции вставки/редактирования ребёнка
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #32804679
Калина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kto-toэто как правило единичные операции -
реакция на действия пользователя в интерфейсе.
На вход приходит в основном 1 строка.
В таком случае спасет , если одна строка и коммит сразу.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #40081923
Сусами
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kto-to, была подобная задача. Решил с помощью execute immediate.
С уважением Новичок SQL!
...
Рейтинг: 0 / 0
ORA-04091: таблица изменяется, триггер/функция может не заметить это
    #40081935
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сусами, молодец. У тебя и топор - отличный инструмент. Для отрубания собственной головы.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-04091: таблица изменяется, триггер/функция может не заметить это
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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