Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Помощь в написании триггера.  [new]
Vlrznv
Member

Откуда:
Сообщений: 2
Здравствуйте, очень нужна ваша помощь. Для контрольной работы попросили сделать триггер, который при изменении в табличке VR_DOG в столбце DATA_OKON при изменении (добавлении/удалении) даты автоматически в таблице VR_RAB в столбце STATUS_RAB делает следующие записи: если есть дата, то «уволен», если нет даты - «работает». Написала триггер, но он не работает. Не догоняю в чем дело, поэтому прошу о помощи!

К сообщению приложен файл. Размер - 156Kb
2 окт 17, 13:51    [20836306]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в написании триггера.  [new]
123йй
Member

Откуда:
Сообщений: 1288
Vlrznv
Для контрольной работы попросили сделать триггер
это 5. на котрольной учитель просит ?
Vlrznv
Написала триггер, но он не работает.
а это 2.
Vlrznv
Не догоняю в чем дело, поэтому прошу о помощи!
помощь
2 окт 17, 14:31    [20836431]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в написании триггера.  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 852
Триггер должен быть for each row.
UPDATE VR_DOG, а надо VR_RAB.

Попробуйте продолжить сами.
2 окт 17, 14:57    [20836510]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в написании триггера.  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 355
dmdmdm
Триггер должен быть for each row.
UPDATE VR_DOG, а надо VR_RAB.

Попробуйте продолжить сами.


автор
табличке VR_DOG в столбце DATA_OKON при изменении (добавлении/удалении) даты автоматически в таблице VR_RAB ...


опечатка?
.....
stax
2 окт 17, 15:07    [20836541]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в написании триггера.  [new]
Vlrznv
Member

Откуда:
Сообщений: 2
Stax,

Нет, не опечатка.
2 окт 17, 15:41    [20836645]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в написании триггера.  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 355
Vlrznv
Stax,
Нет, не опечатка.


шо делать если в VR_RAB нет записи для работника?

ps
если не секрет, попросили, кто?

....
stax
2 окт 17, 15:45    [20836659]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в написании триггера.  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 355
Vlrznv,

SQL> CREATE OR REPLACE TRIGGER tr_vr_dog_aiu
  2  AFTER INSERT OR UPDATE OF data_okon  ON vr_dog
  3  FOR EACH ROW
  4  begin
  5   update vr_rab set status_rab=decode(:new.data_okon,null,'Работает','Уволен') where id_rab=:new.id_rab;
  6  end;
  7  /

Trigger created.

SQL> select * from vr_dog;

    ID_RAB FIO                  DATA_OKO
---------- -------------------- --------
         1 Vlrznv               02.10.17
         2 Stax

SQL> ed
Wrote file afiedt.buf

  1* update vr_dog set data_okon=decode(data_okon,null,sysdate,null)
SQL> /

2 rows updated.

SQL> select * from vr_rab;

    ID_RAB STATUS_RAB
---------- --------------------
         1 Работает
         2 Уволен

SQL> select * from vr_dog;

    ID_RAB FIO                  DATA_OKO
---------- -------------------- --------
         1 Vlrznv
         2 Stax                 02.10.17

SQL>


ps
шо делать если изменят id_rab?

.....
stax
2 окт 17, 16:14    [20836758]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в написании триггера.  [new]
trace.log
Guest
Stax,

на что намек? если первичный ключ, разве его можно изменить?
2 окт 17, 16:21    [20836788]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в написании триггера.  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 355
trace.log
Stax,

на что намек? если первичный ключ, разве его можно изменить?


намек на то, если вумный поменяет id_rab, как ето отразится в vr_rab

можно/нельзя другой ворос

ps
к задачке ето отношения не имеет, там однозначно

при изменении в табличке VR_DOG в столбце DATA_OKON


шоб лишний раз не update-ть можно/надо добавить проверку на изменение с null на дату и наоборот

.....
stax
2 окт 17, 16:32    [20836824]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить