我有一个oracle 11g源代码,我使用microsoft的SQL Server Migration助手工具迁移到SQL Server 2008。 oracle源代码包含一个包含长原始列的表。用于迁移的类型映射是长原始的 - > VARBINARY(MAX)。当我使用SQL开发人员查看oracle数据时,该列仅在每行中显示RAW。但是在SQL Server中,我能够以字符串格式查看迁移的数据。
我可以做些什么来验证或交叉检查oracle中的数据与SQL Server中的数据,或者至少可以验证长原始列?
答案 0 :(得分:1)
如果您仍然可以访问Oracle 11g数据库服务器:那么,在Oracle数据库上,创建一个指向SQL Server数据库的远程数据库链接。 有关信息,请参阅http://www.dba-oracle.com/t_database_link_sql_server_oracle.htm。
然后,仍然在Oracle上编写一个PLSQL例程,该例程读取并比较来自本地Oracle表LONG RAW列的数据和来自远程SQL Server表(迁移表)的数据。
您可能需要使用内置的PLSQL UTL_RAW包来读取和比较数据。有关如何使用它的信息,请参阅 http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_raw.htm#BABFGDDG
有关LONG 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:201012348073