1、文字亂碼的問題主要是由於資料型態上,如果你有儲存中文字時,最好設定nvarchar的型態,因為當使用varchar儲存文字時,如果儲存罕用中文字或是其他語系的文字時,會有亂碼的情況發生,所以建議可以將型態設定成nvarchar,藉以減少轉換上的錯誤情況發生。
PS:個人認為將varchar設定成nvarchar的時候會造成查詢成本上的增加,在個人建議上希望可以明確上的設定,如果該欄位只有單純的儲存英文或數字時,可以利用varchar就好,藉以降低欄位的查詢成本。
設定方式:
開啟專案後,先進行專案的設定。
[Tools] -> [Project Settings]
開啟設定檔後,計對varchar與varchar2的型態更改設定為nvarchar(max),再點選ok即可。
在設定上需特別注意長度的部份,如果你需要由系統自動根據你的長度進行對應的設定時,只需將Length的打勾取消即可。
最後建議在轉換前可以先將資料庫中的復原模式(Recovery Mode)先切換成 Simple | Bulk_logged,等資料轉換回來後再將模式切回Full,這樣在資料轉換的過程中會比較快。
2、在資料大小寫的問題上,主要是當主鍵值的資料如果有兩筆要新增,分別為ice與ICE,在Oracle是可以的,但是在SQL Server中確是不行,原本我希望可以透過定序的方法進行解決,但是設定後還是一樣無解,所以我目前是透過手動資料濾除的方式進行,我預期會透過SSIS,將這些重覆的資料先行濾除後,再透過批次寫入的方式進行,藉以減少轉換過程中手動操作的次數。
以上的幾篇文章主要是在完整轉換Oracle的心得,希望如果大家有更好的方法時,也可以分享給我參考,謝謝。
相關文章:
關鍵字:SSMA、Oracle、資料轉換、SQL Server Migration Assistant、SSIS
可以先在ORACLE建立一個過濾後的VIEW 然後再Subcribe這個VIEW來代替TABLE,比在SQL SERVER上做法簡單多了。
回覆刪除對了,我在你SSMA專欄問了一個問題:請問 SQL SSMA可以當成REPLICATION的替換方案嗎?