2009-03-03 3 views
0

Oracle Transparent Gateway를 통해 SQL Server 데이터베이스를 Oracle에 동기화해야합니다. 동기화는 일괄 적으로 수행되므로, 중단 한 지점부터 다음 데이터 세트를 가져와야합니다.GUID를 기반으로 부분 증분 동기화를 수행하는 방법은 무엇입니까?

내가 가지고있는 문제는 내가 소스에서 유일하게 도움이되는 필드가 GUID라는 것입니다. 그것이 단지 주문할 수있는 번호라면, 마지막 번호를 처리하고 기록 된 번호를> 내 기록으로 가져 와서 프로세스를 다시 시작하십시오. GUID는 작동하지 않습니다.

아이디어가 있으십니까?

답변

0

은 분명히이 작품 : SELECT * HEXTORAW이 v_source_supplier_prices FROM (REPLACE (ID, '-', ''))> HEXTORAW ((교체 '0022F17B-24B3-43EC-8D81-FFD3149950E7을', '-', '')) ORDER BY HEXTORAW (REPLACE (ID, '-', ''))

ID는 원본 시스템의 GUID 필드입니다.

내가 무엇을 비용으로 확실하지 않다

...

+0

'신뢰할 수없는 일 목록'에 추가 할 내용. :) –

0
당신이 번호가 필요 왜 당신은 너무 너무 문자열 (VARCHAR, VARCHAR2를) 정렬 할 수 있습니다

? guids를 문자열로 변환하는 것이 더 빠르지 않습니까? 어쩌면 이미 문자열로 저장되어 있을까요?

+0

난 마지막으로 동기화가 끝난 특정 GUID "후에"새 레코드를 추가 할 수 없다는 것이 문제라고 생각합니다. GUID로 주문한 경우 "가장 높은"GUID의 "앞에"삽입 된 레코드를 놓칠 수 있습니다. –

+0

질문을 다르게 해석 할 수 있다는 것이 사실입니다. "그게 숫자라면". OP는 시퀀스와 같이 시간이 지남에 따라 증가하는 숫자를 의미한다고 생각합니다. 있을 수 있습니다. – tuinstoel