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

Откуда:
Сообщений: 20
В MSSQL есть вьюшка, в которой есть процедурка, где v.write_datetime>=@datetime (т.е. все новые данные во вьюшке имеют определенную дату и время вставки). Необходимо на своей стороне в оракле написать процедуру, которая вызывала бы процедуру во вьюшке MSSQL и вставляла новые данные с момента последнего вызова (как запомнить этот момент вызова?).
2 фев 07, 13:25    [3731308]     Ответить | Цитировать Сообщить модератору
 Re: Как это сделать?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6910
автономная транзакция внутри функции, но как Вы будете гарантировать, что функция вызывается всего один раз...
2 фев 07, 13:36    [3731390]     Ответить | Цитировать Сообщить модератору
 Re: Как это сделать?  [new]
skek
Member

Откуда:
Сообщений: 20
Процедура в оракле будет вызываться каждые 5 мин с помощбю jobs
2 фев 07, 13:38    [3731413]     Ответить | Цитировать Сообщить модератору
 Re: Как это сделать?  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
skek
(как запомнить этот момент вызова?).



ИМХО, это самая простая задача. Создай таблицу и сохраняй дату репликации в неё.
Задача посложнее - гарантировать что во время репликации на стороне источника нет незафиксированных транзакций, которые добавили строки с прошедшей датой.
2 фев 07, 13:46    [3731491]     Ответить | Цитировать Сообщить модератору
 Re: Как это сделать?  [new]
skek
Member

Откуда:
Сообщений: 20
Т.е. необходимо создать еще одну таблицу,# Log, и, после того как загрузились данные в нужную мне таблицу, в Log записывались дата\время вызова процедуры?
2 фев 07, 14:39    [3731970]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить