|
|
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Добрый день, есть две базы Base_1 (привилегии только на SELECT) и Base_2 (привилегии есть все), в Base_2 создан link на Base_1. Требуется каким-то образом отследить добавление или изменение записей в одной из таблиц базы Base_1 непосредственно из базы Base_2. create or replace TRIGGER TRIGGER1 AFTER INSERT ON user.table1@base_1_LINK for each row BEGIN insert into user.table(column_1) values (:new. column_1); END; Error: ORA-02021: DDL-операции на удаленной БД не разрешены Каким образом можно создать подобный триггер или иным способом реализовать отслеживание? Так тоже не получилось: exec dbms_utility.exec_ddl_statement@base_1_LINK (create or replace TRIGGER TRIGGER1 AFTER INSERT ON user.table1@base_1_LINK for each row BEGIN insert into user.table(column_1) values (:new. column_1); END;) Error: ORA-00922: отсутствует или неверна опция Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:07:02 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Uzun_SashaBase_1 (привилегии только на SELECT) Если у вас только селект, то поменять вы ничего не сможете и уж тем более создать объект. Для этого привилегии и нужны, чтобы можно было ограничивать пользователей в правах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:10:59 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
менять я не хочу, мне надо узнать к примеру, что появилась новая строка в Base_1, триггером взять ее ID и вставить в таблицу базы Base_2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:14:33 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Uzun_Sasha, для этого триггер должен быть на таблице в Base_1. Чтобы там создавать триггеры нужны права на создание триггеров там . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:23:20 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Если там будет создан триггер который будет отслеживать изменения там как я отслежу это из Base2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:26:14 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Uzun_Sasha, Триггер из там будет посылать в Base_2 всякие сигналы, о том, что строчки в табличке поменялись. Например, делать insert into user.table@ base_2 _LINK(column_1) values (:new. column_1); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:33:01 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Egoр а нельзя ли как нибудь отследить изменения в Base_1, при условии, что только SELECT, может есть другие механизмы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:36:46 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Да, есть. Селектить до умопомрачения и сравнивать результаты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:39:29 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Uzun_Sasha, Можно. Повесить job, который будет в необходимой регулярность опрашивать интересуемую табличку и сравнивать ее состояние с предыдущим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:40:19 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:41:35 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Uzun_Sashaа нельзя ли как нибудь отследить изменения в Base_1, при условии, что только SELECT, может есть другие механизмы? Код: sql 1. 2. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:41:37 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Код: sql 1. 2. тогда уж лучше матвью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:43:01 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Можно вьюшку материализованную сделать, но это тоже будет по таймеру, тоже что и селектить. А хочется, чтобы все было автоматически, появилась новая запись, попал ID в таблицу и там уже ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:44:21 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Uzun_Sasha... но это тоже будет по таймеру ...Зачем по таймеру. Не надо. Надо сделать кнопочку. И следить за тем, что происходит в base_1. Увидел, что данные в таблице поменялись - нажал кнопочку, а она автоматом обновит всё в base_2. :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:48:23 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Uzun_Sashaможет есть другие механизмы? Есть. Поток redo. Можно использовать в разных вариантах - logical standby один из них. Еще вариант - logminer. К сожалению, в 12 версии oracle отказал пользователям в "халявной" CDC и требует использования GG. У GG, конечно, есть более бюджетные аналоги, но тоже стоят денег. Еще одна возможность - ретроспективные запросы as of scn на стороне base_1 и minus, что сопоставимо с предложенными вариантами "вычитывать-и-сравнивать", но более экономно в плане сетевых взаимодействий между base_1 и base_2. Ну и пока что никто вроде не отменял пока snapshot-репликацию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:49:25 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
exec dbms_utility.exec_ddl_statement@ никак не получится прикрутить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:49:45 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Uzun_Sashaexec dbms_utility.exec_ddl_statement@ никак не получится прикрутить? к чему прикрутить? что вы хотите сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 14:54:25 |
|
||
|
Триггер на стороннюю базу данных
|
|||
|---|---|---|---|
|
#18+
Uzun_Sasha, тема ddl за линком обсуждалась, в том числе, как сделать через дырочку и с помощью зубила и молотка но как вам это поможет (поможет ли ;) - вопрос отдельный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 15:07:16 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39253652&tid=1888119]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
199ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 512ms |

| 0 / 0 |
