Veridata校驗SQL Server和Oracle時的注意點

Jet_Zhang發表於2017-06-01
因業務上的需求,需要將一個SQL Server資料庫中的資料準實時的同步到Oracle資料庫中。資料同步採用了GoldenGate的方案,而使用Veridata來進行資料的校驗。

在Veridata資料校驗過程中,碰到一個讓人有點暈的事,其中有一張表,不管如何,資料比對就是不正確。但讓人暈的是Out of Sync的報告中,只是報告說需要Update,但並沒有標記處不同處。正常的情況下,Veridata是會高亮出哪行哪列資料不同。開始懷疑是Veridata的Bug,但是Veridata已經更新到最新的版本了。而且,抽查其中報告說不一致資料的行,進行人工比較,發現兩邊的資料其實是一樣的!

那會是什麼原因導致的呢?進一步分析,發現這張表中有幾列的記錄是空的,而在表的定義中,這些欄位是允許NULL值的。而SQL Server處理NULL值和Oracle處理NULL值是不一樣,估計問題就出在這裡了。

知道了問題所在,就有辦法解決了。在Veridata中,進行Manual Mapping,將這幾個有NULL值的欄位由Hash方式改為Literal。這時再進行校驗,資料校驗就順利透過了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13885898/viewspace-2140171/,如需轉載,請註明出處,否則將追究法律責任。

相關文章