2

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

我可以做些什么来验证或交叉检查 oracle 中的数据与 SQL 服务器中的数据,或者至少可以验证长原始列?

4

1 回答 1

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#BABFGDG

有关 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

于 2013-12-05T17:18:35.553 回答