我需要通过Oracle透明网关将SQL Server数据库同步到Oracle。同步是以批处理的方式执行的,因此我需要从中断点开始获取下一组数据。
我遇到的问题是,我在源代码中唯一能帮助我的字段是GUID。如果它是一个数字,我可以只按它排序,保持最后一个被处理,并通过获取大于我记录的数字的记录来重新启动该过程。这不适用于GUID。
有什么想法吗?
发布于 2009-03-03 11:21:47
显然,这是可行的:
SELECT * FROM v_source_supplier_prices
WHERE HEXTORAW(REPLACE(ID,'-','')) > HEXTORAW(REPLACE('0022F17B-24B3-43EC-8D81-FFD3149950E7','-',''))
ORDER BY HEXTORAW(REPLACE(ID,'-',''))ID是源系统上的GUID字段。
我不确定要花多少钱。
发布于 2009-03-07 11:41:42
你也可以对字符串(varchar,varchar2)进行排序,那么为什么还需要一个数字呢?将guids转换为字符串不是更快吗?也许它们已经存储为字符串了?
https://stackoverflow.com/questions/605949
复制相似问题