2013-02-05 48 views
2

遷移後,我有我海使用從Microsoft SQL Server遷移輔助工具遷移到SQL Server 2008中的Oracle 11g源。 oracle源有一個包含一個長的原始列的表。用於遷移的類型映射很長 - > varbinary(max)。當我使用SQL開發人員查看oracle數據時,該列僅在每行中顯示RAW。但是,在SQL Server中,我能夠以字符串格式查看遷移的數據。在與SQL Server驗證的Oracle LONG RAW列使用擴頻多址

我能做些什麼來驗證或SQL Server中的數據Oracle中的數據交叉檢查到,或者至少是LONG RAW列的驗證可能嗎?

+0

由於'raw'是二進制數據類型,它似乎很奇怪,它被映射到一個字符數據類型;我會期待'varbinary(max)'代替。我對SSMA一無所知,但這可能是您必須自己遷移二進制數據的情況。至於驗證它,它取決於數據實際是什麼,但我認爲你可以編寫一個簡短的腳本來查詢幾行,然後嘗試打開任何應用程序知道如何閱讀二進制數據。 – Pondlife

+0

對不起。它不是varchar(max),而是varbinary(max)。我編輯了這個問題。 – Dibin

回答

1

如果您仍然可以訪問您的Oracle 11g數據庫服務器:那麼,在Oracle數據庫上,創建一個遠程數據庫鏈接到SQL Server數據庫。 有關信息,請參閱http://www.dba-oracle.com/t_database_link_sql_server_oracle.htm

然後,仍然在Oracle,寫PLSQL例程讀取並從與從遠程SQL Server表(遷移表)數據的本地Oracle表LONG RAW列進行比較的數據。

您可能需要使用內置的PLSQL UTL_RAW包閱讀和比較的數據。有關如何使用信息看到它 http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_raw.htm#BABFGDDG

對於信息的RAW列在11g中工作多長時間,一般見: http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/datatypes.htm#CJAEGDEB http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements001.htm#SQLRF00201

注意,與舊的Oracle數據庫,如Oracle 8i中,如果工作時您的Oracle LONG RAW列大於32K,您將無法使用PLSQL來讀取它們,並且您必須使用其他編程語言來執行此操作。 參見http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:201