Как получить частичную инкрементную синхронизацию на основе GUID? - PullRequest
0 голосов
/ 03 марта 2009

Мне нужно синхронизировать базу данных SQL Server с Oracle через Oracle Transparent Gateway. Синхронизация выполняется партиями, поэтому мне нужно получить следующий набор данных с того места, где я остановился.

Проблема, с которой я столкнулся, заключается в том, что единственное поле, которое у меня есть в источнике, - это GUID. Если бы это был номер, я мог бы просто заказать его, оставить последний обработанным и перезапустить процесс, получив записи, которые являются> моим записанным номером. Это не будет работать с GUID.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 07 марта 2009

Вы также можете сортировать строки (varchar, varchar2), так зачем вам номер? Разве не быстрее конвертировать направляющие в строки? Может быть, они уже хранятся в виде строк?

0 голосов
/ 03 марта 2009

Видимо, это работает:

SELECT * FROM v_source_supplier_prices
WHERE HEXTORAW(REPLACE(ID,'-','')) > HEXTORAW(REPLACE('0022F17B-24B3-43EC-8D81-FFD3149950E7','-','')) 
ORDER BY HEXTORAW(REPLACE(ID,'-',''))

ID - это поле GUID в исходной системе.

Я не уверен, какой ценой ...

...