Veridata校驗SQL Server和Oracle時的注意點
因業務上的需求,需要將一個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。這時再進行校驗,資料校驗就順利透過了。
在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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server安裝補丁注意點--記錄SQLServer
- 關於RAC Server時間同步以及DB Server時間修改注意點Server
- 整理SQL SERVER資料頁checksum校驗演算法SQLServer演算法
- SQL SERVER和ORACLE的排序問題SQLServerOracle排序
- MySql/Oracle和SQL Server的分頁查MySqlOracleServer
- sql中的*的使用注意點SQL
- SQL in ORACLE and SQL ServerSQLOracleServer
- oracle GoldenGate Veridata配置OracleGo
- 轉:Oracle GoldenGate VeridataOracleGo
- SQL Server中的日期和時間:DATEADD()SQLServer
- SQL Server 裡的日期和時間函式SQLServer函式
- SQL SERVER 時間和日期函式SQLServer函式
- Kerberos和NTLM - SQL Server連線的那點事ROSSQLServer
- SQL Azure與SQL Server的異同點總結和歸納SQLServer
- Oracle GoldenGate Veridata 12.1.3OracleGo
- SQL Server中的臨時表和表變數SQLServer變數
- SQL SERVER建立索引需要注意的問題SQLServer索引
- SQL Server中流水號生成的注意事項SQLServer
- Sql Server系列:日期和時間函式SQLServer函式
- SQL Server 字串和時間相互轉換SQLServer字串
- SQL Server Profiler 設定注意事項SQLServer
- ORACLE資料校驗文件Oracle
- Oracle 和 SQL Server 個別小區別OracleSQLServer
- ORACLE和SQL SERVER,DB2對比OracleSQLServerDB2
- 同時使用資料庫鏈和序列時應注意的幾點資料庫
- SQL Server Express和SQL Server Compact的應用SQLServerExpress
- Sql Server 知識點SQLServer
- SQL SERVER臨時表的使用SQLServer
- SQL server 中的臨時表SQLServer
- SQL Server 表分割槽注意事項HXSQLServer
- SQL Server中建Linked Server時首次選Oracle Provider for OLE 導致SQL當機SQLServerOracleIDE
- PostgreSQL、Oracle/MySQL和SQL Server的MVCC實現原理方式OracleMySqlServerMVC
- MySQL、Oracle和SQL Server的分頁查詢語句MySqlOracleServer
- SQL Server和Oracle間的資料同步解決方案SQLServerOracle
- TCP的校驗和與編號TCP
- 同時使用資料庫鏈和序列時應注意的幾點(轉)資料庫
- 【SQL優化】SQL優化的10點注意事項SQL優化
- .net 2.0 訪問Oracle --與Sql Server的差異,注意事項,常見異常OracleSQLServer