Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггер на логирование данных. Как его написать то? / 7 сообщений из 7, страница 1 из 1
28.03.2018, 13:05
    #39621964
a4raa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на логирование данных. Как его написать то?
Ребят всем привет. Уже второй раз пишу тут. Мой начальник решил надо мной поиздеваться, над человеком, который далек от sql.
На случай, если сейчас полетят в меня тухлые яйца, ребят я далек от программирования. Я менеджер-аналитик по продажам.


Вероятно всего тут уже раз 100 500 задавали вопросы по этой теме, но я задам. В общем. есть таблица товаров

DepartmentarticlePriceDate_startDate_enda135031.01.201809.01.2019a215001.01.201531.01.2015a311431.01.201531.01.2019b419031.01.201531.01.2019b512431.01.201511.11.2016


Нужно написать запрос на написание тригера,который выполняет функцию логирования действий на вставку новых данных, на обновление и на удаление записи.
Результат должен быть таким как в таблице:

DepartmentArticlechange_dateTypea109.12.2016Inserta209.12.2016Inserta309.12.2016Insertb409.12.2016Insertb509.12.2016Insertb609.12.2016Insertb605.01.2017Updatea706.02.2017Deletea806.02.2017Delete

РЕБЯТ, ОЧЕНЬ НУЖНА ПОМОЩЬ!!!!! И ВСЕМ БОЛЬШОЕ СПАСИБО ЗА ПОМОЩЬ И НИЗКИЙ ПОКЛОН!
...
Рейтинг: 0 / 0
28.03.2018, 13:10
    #39621970
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на логирование данных. Как его написать то?
a4raaНужно написать запрос на написание тригераЗапрос кому, в отдел написания триггеров?
...
Рейтинг: 0 / 0
28.03.2018, 13:16
    #39621976
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на логирование данных. Как его написать то?
a4raaРезультат должен быть таким как в таблице:
бессмысленная постановка задачи, толку то от такой информации

a 1 09.12.2016 Inserta 1 09.12.2016 Updatea 1 09.12.2016 Deletea 1 09.12.2016 Inserta 1 09.12.2016 Update
...
Рейтинг: 0 / 0
28.03.2018, 13:18
    #39621979
a4raa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на логирование данных. Как его написать то?
-2-,
Да нет, нужно самому написать его. Человек, который этим занимался ушел. Вот хоть убейся а сделать надо. Может не правильно выразился не запрос, а скрипт
...
Рейтинг: 0 / 0
28.03.2018, 13:26
    #39621989
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на логирование данных. Как его написать то?
-2-a4raaНужно написать запрос на написание тригераЗапрос кому, в отдел написания триггеров?
Да всё гораздо проще, этот " менеджер-аналитик по продажам " (под ником a4raa ) учиться в
АЗОВО-ЧЕРНОМОРСКИЙ ИНЖЕНЕРНЫЙ ИНСТИТУТ
http:// ачгаа .рф/
...
Рейтинг: 0 / 0
28.03.2018, 13:27
    #39621990
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на логирование данных. Как его написать то?
Держите, менеджер-аналитик, допиливайте.
Глядишь, переквалифицируетесь в управдомы.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
SQL> create table ware(dep number, article varchar2(10), price number, date1 date);

Table created
SQL> create table ware_log(dep number, article varchar2(10), price number, date1 date, kto varchar2(50), kogda date, chto varchar2 (10));

Table created
SQL> create trigger ware_trg after insert or update or delete on ware for each row
  2  begin
  3    if inserting then
  4      insert into ware_log
  5      values(:new.dep, :new.article, :new.price, :new.date1, user, sysdate, 'INS');
  6    elsif updating then
  7      insert into ware_log
  8      values(:new.dep, :new.article, :new.price, :new.date1, user, sysdate, 'UPD');
  9    else
 10      insert into ware_log
 11      values(:old.dep, :old.article, :old.price, :old.date1, user, sysdate, 'DEL');
 12    end if;
 13  end;
 14  /

Trigger created
SQL> insert into ware values(1, '123', 10, sysdate);

1 row inserted
SQL> insert into ware values(2, '233', 20, sysdate);

1 row inserted
SQL> update ware set dep = 3 where article = '233';

1 row updated
SQL> delete from ware where article = '123';

1 row deleted
SQL> select * from ware_log;

       DEP ARTICLE         PRICE DATE1       KTO                                                KOGDA       CHTO
---------- ---------- ---------- ----------- -------------------------------------------------- ----------- ----------
         1 123                10 28.03.2018  SYSTEM                                             28.03.2018  INS
         2 233                20 28.03.2018  SYSTEM                                             28.03.2018  INS
         3 233                20 28.03.2018  SYSTEM                                             28.03.2018  UPD
         1 123                10 28.03.2018  SYSTEM                                             28.03.2018  DEL

SQL> 

...
Рейтинг: 0 / 0
28.03.2018, 14:25
    #39622057
a4raa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на логирование данных. Как его написать то?
dmdmdm,
Спасибо
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггер на логирование данных. Как его написать то? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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