【问题标题】:How to Import Oracle .DMP file into SQL Server?如何将 Oracle .DMP 文件导入 SQL Server?
【发布时间】:2011-11-20 09:18:36
【问题描述】:

我有一个 .dmp 文件(oracle 数据),我必须将此文件导入 SQL Server 2008 R2。我试过谷歌,但没有得到明确的解决方案。 Oracle 在另一台机器上,而 SQL Server 在另一台机器上。这个 .DMP 文件只有表和数据,没有别的。
有人知道吗?

【问题讨论】:

    标签: sql-server oracle import dmp


    【解决方案1】:

    当我遇到同样的问题时,我尝试手动调查格式(在我的情况下,转储文件是由 Oracle EXP 生成的)。我发现:

    • 表定义以 Oracle CREATE TABLE 语句的形式提供,可以轻松转换为 MS SQL 格式
    • 可以很容易地提取大多数类型的数据(文本“按原样”保存,数值根据IEEE 754 format 存储)
    • LOB 的存储方式相当复杂,我没认出来

    然后我找到了能够完成我的迁移任务的工具:https://www.convert-in.com/ord2mss.htm

    厂商说exp和expdp都可以迁移到sql server,但是我只测试过EXP格式。

    【讨论】:

      【解决方案2】:

      SQL 无法读取 Oracle Dumps。

      根本不可能,但你有不同的解决方案

      1. SQL 服务器集成服务 (SSIS)
      2. oracle 和 SQL(Oracle 网关)之间的链接,但它适用于 SQL Ent。
      3. 将oracle中的数据以分隔格式导出并插入到SQL中,但是如果数据量很大的话,会比较费时间。

      【讨论】:

        【解决方案3】:

        你不能从这里到达那里。 Oracle 导出实用程序(经典或 DataPump)生成的文件(按照惯例,经常使用 DMP 扩展名)是专有的二进制文件。它们只能由 Oracle 导入实用程序(经典或 DataPump)使用,它只允许您将数据加载到另一个 Oracle 数据库中。

        您可以将 DMP 文件加载到新的 Oracle 数据库中,但您仍需要将数据从 Oracle 移动到 SQL Server。忽略 DMP 文件并直接从原始 Oracle 数据库中提取可能更容易。有多种工具可用于将数据从 Oracle 数据库移动到 SQL Server 数据库。如果您希望 SQL Server 控制该过程,您可以使用 SQL Server Integration Services (SSIS)。您还可以在 SQL Server 中创建一个链接服务器,该服务器引用 Oracle 数据库并通过该连接对 Oracle 数据库编写查询。如果您希望 Oracle 推送数据,您还可以使用具有异构服务的 Oracle 透明网关来创建从 Oracle 到 SQL Server 的数据库链接,并针对远程 SQL Server 数据库发出 SQL。

        moving data from Oracle to SQL Server 上有一个不错的 StackOverflow 线程。如果您从 Oracle 拉到 SQL Server 或从 SQL Server 推到 Oracle,SSIS 逻辑非常相似。

        【讨论】:

        • 感谢您的回复。你能提供一些 SSIS 的工作示例吗?我对此了解不多。
        • @jams - 更新了我的答案,提供了一个更详细的一般迁移选项讨论的链接。
        猜你喜欢
        • 1970-01-01
        • 2021-05-25
        • 1970-01-01
        • 2012-06-26
        • 2014-04-29
        • 2022-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多