2009-03-03 14 views
0

SQL Server veritabanını Oracle Transparent Gateway üzerinden Oracle'a senkronize etmem gerekiyor. Senkronizasyon gruplar halinde gerçekleştirildiğinden, bir sonraki veri setini bıraktığım noktadan almam gerekiyor.GUID temel alınarak kısmi artan eşitlemeler nasıl yapılır?

Yapmakta olduğum sorun, kaynakta sahip olduğum tek alanın bana yardımcı olması için bir GUID olmasıdır. Eğer sipariş verebildiğim bir numara olsaydı, sonuncusu işlenmeye devam et ve kaydedilen numaramı içeren kayıtları alarak işlemi yeniden başlat. Bu bir GUID ile çalışmaz.

Herhangi bir fikrin var mı?

cevap

0

Görünüşe göre bu işleri: SEÇ * HEXTORAW v_source_supplier_prices DAN (DEĞİŞTİR (ID, '-', ''))> HEXTORAW ((DEĞİŞTİRİN '0022F17B-24B3-43EC-8D81-FFD3149950E7', '-', '') HEXTORAW'DAN SUNUM (DEĞİŞTİR (',' - ',' '))

Kimlik, kaynak sistemdeki GUID alanıdır.

ne pahasına emin değilim

...

+0

"Güvenilmemesi gereken şeylerin listesine" eklenecek bir şey. :) –

0
bir numara gerekiyor neden bu kadar çok dizeleri (varchar, varchar2) sıralayabilir

? Kılavuzları dizelere dönüştürmek daha hızlı değil mi? Belki de zaten dizeler olarak saklanırlar?

+0

Sanırım sorun, yeni kayıtların son senkronizasyonun bittiği belirli bir GUID'in "sonradan" eklenmesinin garanti edilemeyeceğidir. GUID tarafından sipariş verildiyse "en yüksek" GUID'yi ekleyen bir kaydı kaçırabilir. –

+0

Kişinin soruyu farklı şekilde yorumlayabileceği doğrudur. "eğer bir sayı varsa". OP'nin bir dizi gibi zamanla artan bir sayı olduğunu düşünürsünüz. Olabilirdi. – tuinstoel