从Oracle迁移到SQL Server后的校验和验证

时间:2012-12-04 12:45:29

标签: sql-server-2008-r2 oracle11g checksum data-migration

我正在使用SSIS将大型数据库从oracle 11g迁移到SQL SERVER 2008R2。如何使用校验和验证数据完整性?

1 个答案:

答案 0 :(得分:0)

过去,我总是使用一些应用程序控件来完成此操作。它应该是易于在两个平台上计算的东西。

最终结果通常是查询:

select count(*)
,      count(distinct col1) col1_dist_cnt
...
,      count(distinct col99) col99_dist_cnt
,      sum(col1) col1_sum
...
,      sum(col99) col99_sum
from   table

假脱机到文件,Excel或数据库并比较结果。除了项目管理和审计员。

请详细了解应用程序控制here。我在监管报告的各种财务报告系统之间进行了检查,因此这种方法适用于大多数情况。

如果只有一个字段值错误,它将始终显示。两个错误可能相互补偿。例如,第1行col 1从第2行col 1获取值。

要检测到这一点,请将每个值乘以该行唯一的值。例如,如果您还具有迁移中包含的唯一ID列或标识:

,      sum(ID * col1) col1_sum
...
,      sum(ID * col99) col99_sum

当您获得数字溢出时,首先尝试使用最大可用精度(特别是在SQL Server上有时很难)。如果不再可行,请使用mod函数。 mod隐藏了几种类型的错误。

锦上添花就是自动生成这些陈述。在Oracle上查看user_tables,user_tab_columns。在SQL Server上查看syscolumns等。