2009-03-03 7 views
0

Oracle Transparent Gatewayを介してSQL ServerデータベースとOracleを同期する必要があります。同期はバッチで実行されるため、中断した時点から次のデータセットを取得する必要があります。GUIDに基づいて部分増分同期を行う方法はありますか?

私が抱えている問題は、私がソースで持っている唯一のフィールドが、私を助けるためにGUIDだということです。それが私がちょうどそれによって注文できる数だったら、最後のものを処理して、記録された>私の記録された数を得ることによってプロセスを再開してください。これはGUIDでは機能しません。

アイデア?

答えて

0

は、どうやらこれは動作します: SELECT * HEXTORAWはv_source_supplier_prices FROM(REPLACE(ID、 ' - '、 ''))> HEXTORAW((REPLACE '0022F17B-24B3-43EC-8D81-FFD3149950E7を'、 ' - '、 '')) ORDER BY HEXTORAW(置換(ID、 ' - '、 ''))

IDは、ソースシステムのGUIDフィールドです。

私は何のコストでわからないんだけど...

+0

「信頼できないもののリスト」に追加するもの。 :) –

0

あなたは数が必要なのか、なぜあなたもそう文字列(varchar型、VARCHAR2)を並べ替えることができますか? guidsを文字列に変換する方が速いのでしょうか?おそらくそれらはすでに文字列として格納されていますか?

+0

私は問題は、最後の同期が終了した特定のGUIDの後に新しいレコードが追加されることを保証できないということだと思います。彼がGUIDで注文した場合、彼は "最高の" GUIDの前に挿入されたレコードを見逃す可能性があります。 –

+0

質問を異なる方法で解釈できることは事実です。 "それがどこの数字なら"。 OPとは、シーケンスのように時間とともに増加する数字を意味します。になり得る。 – tuinstoel

関連する問題