Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SSMA在迁移后使用SQL Server验证oracle中的长原始列_Sql_Oracle_Sql Server 2008_Oracle11g_Migration - Fatal编程技术网

使用SSMA在迁移后使用SQL Server验证oracle中的长原始列

使用SSMA在迁移后使用SQL Server验证oracle中的长原始列,sql,oracle,sql-server-2008,oracle11g,migration,Sql,Oracle,Sql Server 2008,Oracle11g,Migration,我有一个oracle 11g源,我已经使用microsoft的SQL Server迁移助手工具将其迁移到SQL Server 2008。oracle源有一个包含长原始列的表。用于迁移的类型映射为long raw->varbinary(max)。当我使用SQLDeveloper查看oracle数据时,该列仅在每行中显示RAW。但是,在SQL Server中,我能够以字符串格式查看迁移的数据 如何验证或交叉检查oracle中的数据与SQL server中的数据,或者至少可以验证长原始列?如果您仍然可

我有一个oracle 11g源,我已经使用microsoft的SQL Server迁移助手工具将其迁移到SQL Server 2008。oracle源有一个包含长原始列的表。用于迁移的类型映射为long raw->varbinary(max)。当我使用SQLDeveloper查看oracle数据时,该列仅在每行中显示RAW。但是,在SQL Server中,我能够以字符串格式查看迁移的数据


如何验证或交叉检查oracle中的数据与SQL server中的数据,或者至少可以验证长原始列?

如果您仍然可以访问oracle 11g数据库服务器:然后,在oracle数据库上创建到SQL server数据库的远程数据库链接。 有关信息,请参阅

然后,仍然在Oracle上,编写一个PLSQL例程,该例程读取本地Oracle表长原始列中的数据,并将其与远程SQL Server表(迁移的表)中的数据进行比较

您可能需要使用内置的PLSQL UTL_原始包来读取和比较数据。有关如何使用它的信息,请参见

有关11g中原始列的工作时间的信息,请参阅:

请注意,在使用较旧的Oracle数据库(如Oracle 8i)时,如果您的Oracle LONG RAW列大于32K,您将无法使用PLSQL读取这些列,您必须使用其他编程语言来读取它们。
请参见

因为
raw
是一种二进制数据类型,所以将其映射到字符数据类型似乎有些奇怪;我本来希望
varbinary(max)
。我对SSMA一无所知,但在这种情况下,您可能必须自己迁移二进制数据。至于验证它,这取决于数据实际上是什么,但我假设您可以编写一个短脚本来查询几行,然后尝试在任何知道如何读取它的应用程序中打开二进制数据。它不是varchar(max),而是varbinary(max)。我已经编辑了这个问题。