如何从Oracle转储文件创建SQL DB?

如何从Oracle转储文件创建SQL DB?,oracle,sql-server-2008,oracle10g,etl,Oracle,Sql Server 2008,Oracle10g,Etl,我是Oracle的新手,但对MSSQL很有经验,我有一个Oracle DB的转储文件,我想将模式和数据从这个转储文件导入MSSQL。如何从Oracle转储文件创建MSSQL数据库 步骤或链接到正确的方向将受到高度赞赏 谢谢假设您所指的“转储文件”是使用Oracle导出实用程序的经典版或数据泵版(exp或expdp)创建的.dmp文件,则您拥有的是Oracle专有的二进制文件格式。除了Oracle的导入实用程序(classic或DataPump,取决于创建文件所使用的版本)之外,它不能被任何其他程

我是Oracle的新手,但对MSSQL很有经验,我有一个Oracle DB的转储文件,我想将模式和数据从这个转储文件导入MSSQL。如何从Oracle转储文件创建MSSQL数据库

步骤或链接到正确的方向将受到高度赞赏

谢谢

假设您所指的“转储文件”是使用Oracle导出实用程序的经典版或数据泵版(
exp
expdp
)创建的.dmp文件,则您拥有的是Oracle专有的二进制文件格式。除了Oracle的导入实用程序(classic或DataPump,取决于创建文件所使用的版本)之外,它不能被任何其他程序读取。有一些第三方工具声称能够读取这种特定的文件格式,并允许您从.dmp文件中创建数据库,但这些通常是商业产品,我从未亲自使用过

如果是我,假设您需要从.dmp文件开始,我会安装一个Oracle数据库,将.dmp文件导入到该Oracle数据库中,然后使用您选择的ETL工具(即SSIS,因为您熟悉SQL Server)将数据从一个数据库移到另一个数据库。当然,如果这是一个选项,那么您可以直接连接到实际的源Oracle数据库,而不是使用.dmp文件来创建一个新的数据库来填充新创建的Oracle数据库


如果您所指的“转储文件”是其他内容(即SQL语句的纯文本脚本),您可能有一组不同的选项。

谢谢Justin,正如您所说,转储文件是使用exp实用程序创建的,我的VM上安装了Oracle 11g。我已经使用oracle的DB configuration assistant从转储文件创建了oracle数据库,并将转储文件导入到新的oracle DB。我遇到的问题是从SSIS包连接到此DB,是否知道该包和Oracle侦听器的设置是什么?@DavidLA-OK。然后,只需编写ETL,从(静态的,对吗?)Oracle数据库中提取数据并将其加载到SQL Server数据库中。在SSIS中,这是一件相当简单的事情。@Jutin Cave,再次感谢,任何可用于从Oracle db获取SQL.bak文件的实用程序。@DavidLA-我所知的都不是,但如果某些商业产品试图实现这一点,我不会感到震惊。不过,我倾向于避免使用专有文件格式,包括Oracle.dmp和sqlserver.bak文件,除非没有其他选择。如果不想使用SSI,可以将Oracle数据写入一个平面文件,然后使用
bcp
将其加载到SQL Server中——这至少可以让您摆脱专有格式,并将其加载到人类相对容易理解和调试的文件中。