是否可以從兩個數據庫服務器生成哈希代碼並進行比較?如何在SQL Server中編寫以下僞SQL?尤其是兩個getHash
函數接受SQL服務器和oracle中的多重數字/浮點列。從SQL Server和Oracle獲取散列值並進行比較?
select s.PK
from sqltable s
join openquery(oracleLinkedServer,
'select PK, getHash(Column1, floatColumn2, ..., floatColumnN) oracleHash
from oracleTable') o on o.PK = s.PK
where
getHash(Column1, floatColumn2, ..., floatColumnN) <> oracleHash
鑑於SQL Server和Oracle之間的許多數據類型不可能具有100%的匹配表示,所以它不太可能工作 – 2012-01-11 07:48:52
如果將所有值轉換爲大字符串(x,1.234,2.345 =「x1」),它可能會工作。 2342.345「),然後根據相同的編碼計算散列(例如md5)。 – tbone 2012-01-11 13:20:13
@tbone將它們連接到一個大的字符串可能會引入更多的不確定性。 – ca9163d9 2012-01-11 17:01:16