|
|
|
Oracle Streams ORA-26786
|
|||
|---|---|---|---|
|
#18+
Всем привет. Столкнулся со следующей проблемой. Пытаюсь реализовать репликацию. Во время репликации нужно менять значение одного из полей. Проблема в том, что когда в базе источнике апдейтится это поле, то возникает ошибка ORA-26786. Что конечно логично, так как данные действительно разные, я их сам поменял в момент предыдущей репликации. Пока в голову пришел только грубый вариант, сделать ручками апдейт нужной мне строчки (её еще найти надо, я пока не знаю всегда ли это можно будет сделать), и потом вызвать lcr.execute. Вариант мне не нравится, я еще не пробовал, но он уже выглядит по-дебильному. Уверен что есть способ поизящнее. Приведу пример. Есть таблица Код: plsql 1. 2. 3. В ней вставляется строчка Код: plsql 1. Эта транзакция реплицируется в удаленную табличку Код: plsql 1. 2. 3. Алгоритм изменения поля value возмем очень простой, value+1 Оракл Стримс вставляет запись Код: plsql 1. После этого не проходит репликация на табличку zzz_table_remote, так как поля zzz_table.value и zzz_table_remote.value конфликтуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 17:53 |
|
||
|
Oracle Streams ORA-26786
|
|||
|---|---|---|---|
|
#18+
DBMS_APPLY_ADM.SET_PARAMETER('APPLY01', 'compare_key_only', 'N') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 13:03 |
|
||
|
Oracle Streams ORA-26786
|
|||
|---|---|---|---|
|
#18+
то есть Y ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 13:04 |
|
||
|
Oracle Streams ORA-26786
|
|||
|---|---|---|---|
|
#18+
Filo & Peri, Круто, спасибо. Правда я заюзал другой метод, dbms_apply_adm.copare_old_values. Но возникла другая проблема, но похожая. В целевой табличке есть дополнительное поле. В процессе реплицкации я cчитаю его значения, добавляю, все ок. Но при определенных условиях нужно оставлять старое значение этого доп поля. То есть по простому не апдейтить. Никак не могу придумать как это сделать. Оракл либо ставит указанное, либо налл. Пробовал вообще не добавлять поле в dml_handler (да, я делаю через него), пробовал добавлять поле только со старыми value_type. В первом случае выставляет налл, во втором значение что добавлено вместе с полем. Как быть?:) Неужто придется лезть и селектить из целевой таблики? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 20:26 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39560178&tid=1884841]: |
0ms |
get settings: |
9ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
135ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 434ms |

| 0 / 0 |
