不同数据库类型的数据库表的一致哈希值

时间:2012-06-27 19:25:30

标签: c# mysql sql-server database oracle

我在各种不同的数据库类型(Microsoft SQL2005,MySql和IBM Informix,Oracle)上拥有相同的数据表,我需要为表中的数据生成SHA-1哈希结果,这些结果在不同的数据库中是相同的数据库类型。

我正在努力确定实现这一目标的最佳方法,到目前为止,这是我提出的:

  • 使用.NET SqlDataAdapter,从所需的表中选择* 数据表。
  • 通过List.Sort()对列名进行排序以确保一致 数据库类型之间的排序
  • 对于每一行,执行如下哈希:
    • 将每个列值转换为字符串并附加到rowString中 以上确定的订单
    • 散列整个rowString以获取rowHash并将其添加到列表中。
  • 接下来,按其SHA-1值对所有rowHash值进行排序并对其进行散列 结果获得最终表哈希。这应该照顾 不同之间以不同顺序返回行的问题 数据库类型。

我是否会遇到此实施的任何问题?如来自不同数据库的数据类型导致不同的字符串结果?

另外,需要分类吗?我假设除非在查询中定义,否则不保证列和行排序,我希望它尽可能动态。

感谢。

1 个答案:

答案 0 :(得分:1)

注意数值,特别是舍入和精度。