如何将Oracle .DMP文件导入SQL Server?

时间:2011-09-19 15:56:24

标签: sql-server oracle import dmp

我有一个.dmp文件(oracle数据),我必须将此文件导入SQL Server 2008 R2。我试过谷歌但没有明确的解决方案。 Oracle在其他机器上,而SQL Server在其他机器上。这个.DMP文件只有表格和数据,只有其他内容 任何人都有任何想法吗?

3 个答案:

答案 0 :(得分:9)

你不能从这里到达那里。 Oracle导出实用程序(经典或DataPump)生成的文件(按照惯例,经常使用DMP扩展)是专有的二进制文件。它们只能由Oracle导入实用程序(classic或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逻辑非常相似。

答案 1 :(得分:0)

SQL无法读取Oracle Dumps。

不可能,但是您有不同的解决方案

  1. SQL Server集成服务(SSIS)
  2. Oracle和SQL(Oracle网关)之间的链接,但它与SQL Ent一起使用。
  3. 以定界格式从oracle导出数据并将其插入SQL,但是如果数据量很大,这将需要一些时间。

答案 2 :(得分:0)

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

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

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

供应商说它可以将exp和expdp都迁移到sql server,但我只在EXP格式上测试过。