Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / триггер / 22 сообщений из 22, страница 1 из 1
25.11.2016, 12:40
    #39354497
D_r_a_g_o_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
Задача. Нужно при в ставке записей в одну таблицу, скопировать данные в другую.


CREATE OR REPLACE TRIGGER TR_COPY_BOOKS
BEFORE INSERT OR UPDATE
ON proverka
Begin
INSERT INTO prov

Where app_session in (
select max(APP_SESSION) as APP_SESSION
From proverka
)
End;

При добавление записей в таблицу proverka, ругается на триггер.
...
Рейтинг: 0 / 0
25.11.2016, 12:45
    #39354507
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
Ты уверен, что это текст на PL/SQL?
Что такое INSERT INTO prov без VALUES ?
И что за висящее в воздухе WHERE?
...
Рейтинг: 0 / 0
25.11.2016, 12:48
    #39354514
D_r_a_g_o_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
INSERT INTO prov
From proverka
Where app_session in (
select max(APP_SESSION) as APP_SESSION
From proverka
...
Рейтинг: 0 / 0
25.11.2016, 12:50
    #39354517
Lary Denis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_n, а! теперь понятно!
...
Рейтинг: 0 / 0
25.11.2016, 12:54
    #39354524
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_nINSERT INTO prov
From proverka
Where ...

Ну нету такой конструкции в SQL. Ты их сам выдумываешь что ли?
...
Рейтинг: 0 / 0
25.11.2016, 12:55
    #39354526
D_r_a_g_o_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
Что понятно? подскажите, как написать.
...
Рейтинг: 0 / 0
25.11.2016, 13:01
    #39354533
Ivan Molodec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_n, у меня тоже не создается. ORA-00942 возвращает(
...
Рейтинг: 0 / 0
25.11.2016, 13:01
    #39354534
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_n,

Почитать документацию для начала.
Какую задачу на самом деле требуется решить и почему выбран такой способ?
...
Рейтинг: 0 / 0
25.11.2016, 13:10
    #39354537
D_r_a_g_o_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
Нужно создать триггер на таблицу, чтобы увидеть данные в таблице т.к их вставляют и удаляют ночью . Для этого мне нужно из таблицы1 перекинуть в таблицу2 одну строку для анализа.
...
Рейтинг: 0 / 0
25.11.2016, 13:17
    #39354542
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_n,

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

одну строку для анализа.
одну из ....?
...
Рейтинг: 0 / 0
25.11.2016, 13:20
    #39354546
D_r_a_g_o_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
Нужна одна, я не знаю, что они там делаю, но утром данных нет.
...
Рейтинг: 0 / 0
25.11.2016, 13:23
    #39354550
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_n,

Так может, просто спросить "их"
что они там делаю

Может просто commit не делают после вставки и закрывают соединение.
...
Рейтинг: 0 / 0
25.11.2016, 13:25
    #39354554
Ivan Molodec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
env, тише.. "они" могут услышать.
...
Рейтинг: 0 / 0
25.11.2016, 13:28
    #39354557
D_r_a_g_o_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
пусть услышат, есть примеры?
...
Рейтинг: 0 / 0
25.11.2016, 13:39
    #39354568
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_n,

Примеры чего? Отсутствия commit?

В доке почитайте, что это такое. Найдите сайт "РСУБД для младших групп детского сада" в конце концов.

Заодно, поймёте, что в этом варианте триггер никак не поможет, ибо вставка из него будет в рамках той же транзакции.
...
Рейтинг: 0 / 0
25.11.2016, 15:17
    #39354647
bbam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_n

Почитай что такое :NEW и :OLD в триггерах.

Из триггера вызвать процедуру, в которой и делать insert
В процедуре должна быть "pragma automous_transaction"
В конце процедуры делать commit
В этом случае процедура будет работать в отдельной сессии от триггера.
...
Рейтинг: 0 / 0
25.11.2016, 15:20
    #39354652
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
bbam,

Поздравляю, помог человеку "выстрелить себе в ногу"
...
Рейтинг: 0 / 0
25.11.2016, 15:30
    #39354658
bbam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
env

Если нужны данные только для анализа, то этот вариант подойдет.
Если для чего то другого, то искать новый вариант.
...
Рейтинг: 0 / 0
25.11.2016, 16:00
    #39354677
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
bbamD_r_a_g_o_n

Почитай что такое :NEW и :OLD в триггерах.

Из триггера вызвать процедуру, в которой и делать insert
В процедуре должна быть "pragma automous_transaction"
В конце процедуры делать commit
В этом случае процедура будет работать в отдельной сессии от триггера.ты хоть думай что пишешь
...
Рейтинг: 0 / 0
25.11.2016, 16:00
    #39354678
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_nчтобы увидеть данные в таблице т.к их вставляют и удаляют ночью .Оставь на ночь включенным свет.
...
Рейтинг: 0 / 0
25.11.2016, 16:28
    #39354700
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_n,

Код: plaintext
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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
Connected.
SANDBOX@ee>;create table my_table (my_column number);

Table created.
SANDBOX@ee>;
SANDBOX@ee>;create table my_log(time timestamp with local time zone, message varchar2(2000));

Table created.
SANDBOX@ee>;create or replace trigger my_trigger
  2  before insert or update or delete
  3  on my_table
  4  declare
  5      pragma autonomous_transaction;
  6      message my_log.message%type;
  7  begin
  8      case
  9          when inserting then
 10              message := 'INSERTING';
 11          when updating then
 12              message := 'UPDATING';
 13          when deleting then
 14              message := 'DELETING';
 15          else
 16              null;
 17      end case;
 18      insert into my_log(time, message)
 19          values (current_timestamp, message);
 20      commit;
 21  end;
 22  /

Trigger created.
SANDBOX@ee>;insert into my_table(my_column) values(1);

1 row created.
SANDBOX@ee>;select * from my_log;
TIME                          MESSAGE
----------------------------- ----------
25-NOV-16 04.23.49.239000 PM  INSERTING

SANDBOX@ee>;update my_table set my_column = 2;

1 row updated.
SANDBOX@ee>;select * from my_log;
TIME                          MESSAGE
----------------------------- ----------
25-NOV-16 04.23.49.239000 PM  INSERTING
25-NOV-16 04.23.49.310000 PM  UPDATING

SANDBOX@ee>;delete from my_table;

1 row deleted.
SANDBOX@ee>;select * from my_log;
TIME                          MESSAGE
----------------------------- ----------
25-NOV-16 04.23.49.239000 PM  INSERTING
25-NOV-16 04.23.49.310000 PM  UPDATING
25-NOV-16 04.23.49.363000 PM  DELETING

SANDBOX@ee>;rollback;

Rollback complete.
SANDBOX@ee>;select * from my_log;
TIME                          MESSAGE
----------------------------- ----------
25-NOV-16 04.23.49.239000 PM  INSERTING
25-NOV-16 04.23.49.310000 PM  UPDATING
25-NOV-16 04.23.49.363000 PM  DELETING

...
Рейтинг: 0 / 0
25.11.2016, 17:14
    #39354731
Lary Denis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
триггер
D_r_a_g_o_n,

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


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