powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите новичку, триггер медленно выполняется!
19 сообщений из 19, страница 1 из 1
Помогите новичку, триггер медленно выполняется!
    #39316381
Javl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех!!!
Написал простейший триггер для записи в поле даты при обновлении карточки, но теперь карточка обновляется более минуты.
FOR EACH ROW не писал, чтобы не получить ошибку перечислил все поля.
Как можно ускорить процесс или оптимизировать выполнение триггера!
Заранее спасибо!!!
CREATE OR REPLACE TRIGGER UPDATE_DATE
BEFORE UPDATE
OF A_001,A_002,A_003,A_004,A_005,A_006,A_007,A_008,A_009,A_010,A_011,A_012,A_013,A_014,A_015,A_016,A_017,A_018,A_019,A_020,A_021,A_022,A_023,A_026,A_027,A_028,A_029,A_030,A_031,A_032,A_033,A_034,A_035,A_036,A_037,A_038,A_039,A_040,A_041,A_042,A_043,A_044,A_046,A_047,A_048,A_049,A_050,A_051,A_052,A_053,A_054,A_055,A_056,A_057,A_058,A_059,A_060,A_061,A_062,A_063,A_064,A_065,A_066,A_067,A_068,A_069,A_070,A_071,A_072,A_073
ON USER.OB01
BEGIN
UPDATE USER.OB01
set A_025 = SYSDATE;
END;
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316385
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Javl,

это феерическая жесть!
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316387
CrazyCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шедевр.
Код: plsql
1.
2.
UPDATE USER.OB01 
set A_025 = SYSDATE;


апдейтим все записи таблицы.
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316394
Javl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я же просил помощи и указать на ошибки....
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316401
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Javl,

Классно троллим. :)

Тебе же и указали. Кстати, зачем обманываешь, ты же указал не все поля. Ну чтоб в рекурсию не вогнать. :)
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316407
Javl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не знаю как правильно прописать, чтобы обновилась дата только в изменяемой карточке.

P.s. Еще не правильно указал, у меня AFTER, а не BEFORE !
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316409
CrazyCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavlЯ же просил помощи и указать на ошибки....
http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0764599577.html
есть книжка в электронном виде.
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316410
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavlЯ не знаю как правильно прописать, чтобы обновилась дата только в изменяемой карточке.
Ну так, для этого есть row level trigger. Только таблицу то зачем трогать?
Меняй значения текущей строки. Почитай в документации про :new :old
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316419
Javl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Арсеньев,

Я пробовал, пишет NEW и OLD не может выполняться в триггере table.
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316421
CrazyCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavlСергей Арсеньев,

Я пробовал, пишет NEW и OLD не может выполняться в триггере table.
даже в старых версиях оракла может, а у тебя не может
https://docs.oracle.com/cd/B10501_01/appdev.920/a96590/adg13trg.htm
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316429
Javl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CrazyCat,

Пробую
CREATE OR REPLACE TRIGGER TRIGGER1
AFTER UPDATE
OF A_001,A_002,A_003,A_004,A_005,A_006,A_007,A_008,A_009,A_010,A_011,A_012,A_013,A_014,A_015,A_016,A_017,A_018,A_019,A_020,A_021,A_022,A_023,A_026,A_027,A_028,A_029,A_030,A_031,A_032,A_033,A_034,A_035,A_036,A_037,A_038,A_039,A_040,A_041,A_042,A_043,A_044,A_046,A_047,A_048,A_049,A_050,A_051,A_052,A_053,A_054,A_055,A_056,A_057,A_058,A_059,A_060,A_061,A_062,A_063,A_064,A_065,A_066,A_067,A_068,A_069,A_070,A_071,A_072,A_073
ON USER.OB01
BEGIN
:new.A_025 := sysdate;
END;


Error: ORA-04082: ссылки на NEW или OLD недопустимы в триггерах уровня таблицы
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316436
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Javl, неужели так сложно найти?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
CREATE OR REPLACE TRIGGER UPDATE_DATE_TRG
BEFORE UPDATE
ON test_tab
FOR EACH ROW
BEGIN
  :new.col2:=sysdate;
END;
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316442
Javl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
j2k,

Спасибо огромное !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316533
Javl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Javl,

Подскажите пожалуйста, как реализовать еще одну идею.
Для примера, аналогичный триггер как с датой только для пользователя

CREATE OR REPLACE TRIGGER UPDATE_DATE_TRG
BEFORE UPDATE
ON test_tab
FOR EACH ROW
BEGIN
:new.col2:=user;
END;

Есть таблица sbuser в которой поля name_user и descr, в которых имя пользователя ivanov, и его описание Иванов, хотелось бы, чтобы триггер подставлял вместо user (ivanov) значение поля descr т.е. Иванов.
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316556
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
user_descr sbuser.descr%type;



Код: plsql
1.
select descr into user_descr from sbuser where name_user = user;



Код: plsql
1.
:new.column_user := user_descr;



*посыпая голову пеплом*

Скоро здесь про "а как значение переменной присвоить" будут спрашивать.
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316563
Javl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm,

Спасибо, но чет не получается...
Пишет

Error(7,10): PLS-00103: Встретился символ "sbuser" в то время как ожидалось одно из следующих: := . ( @ % ; Символ ":=" заменен на "sbuser", чтобы можно было продолжать.
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316576
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто б сомневался.
Код целиком покажите.
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316657
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встретился символ "sbuser"Вы ещё держите деньги в Сбере?
...
Рейтинг: 0 / 0
Помогите новичку, триггер медленно выполняется!
    #39316668
Javl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm,

Все, спасибо огромное, разобрался!!!
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите новичку, триггер медленно выполняется!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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