我有一个 .dmp 文件(oracle 数据),我必须将此文件导入 SQL Server 2008 R2。我尝试了谷歌,但没有得到明确的解决方案。Oracle 在另一台机器上,而 SQL Server 在另一台机器上。这个 .DMP 文件只有表和数据,没有别的。
任何机构有任何想法?
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。
将数据从 Oracle 移动到 SQL Server有一个很好的 StackOverflow 线程。如果您从 Oracle 拉到 SQL Server 或从 SQL Server 推到 Oracle,SSIS 逻辑非常相似。
SQL 无法读取 Oracle Dumps。
根本不可能,但你有不同的解决方案
- SQL 服务器集成服务 (SSIS)
- oracle 和 SQL(Oracle 网关)之间的链接,但它适用于 SQL Ent。
- 以分隔格式从oracle导出数据并插入到SQL中,但是如果数据很大,则需要时间。
当我遇到同样的问题时,我尝试手动调查格式(在我的情况下,转储文件是由 Oracle EXP 生成的)。我找到:
- 表定义以 Oracle CREATE TABLE 语句的形式提供,可以轻松转换为 MS SQL 格式
- 大多数类型的数据都可以很容易地提取(文本按“原样”进行,数值根据IEEE 754 格式存储)
- LOB 的存储方式非常复杂,我没认出来
然后我找到了能够完成我的迁移任务的工具:https ://www.convert-in.com/ord2mss.htm
厂商说exp和expdp都可以迁移到sql server,但是我只测试过EXP格式。