如何将数据从SQL Server提取到Oracle?

时间:2011-01-25 15:52:57

标签: sql-server oracle

我想从SQL Server表中获取数据并填充Oracle表。现在,我的解决方案是将数据转储到Excel表中,编写一个宏来创建一个可以加载到Oracle的sql文件。这个问题是我想自动化这个过程,我不确定我是否可以自动化。

是否有一种简单的方法可以自动使用SQL Server表中的数据填充Oracle表?

提前致谢

4 个答案:

答案 0 :(得分:2)

是。看看MS SQL的SSIS代表SQL Server Integration Services。 SSIS允许各种高级功能,包括使用Sql Server Jobs自动执行,以便在不同的数据源之间移动数据。在您的情况下,connecting to Oracle可以通过多种方式实现。

答案 1 :(得分:2)

我认为这取决于你对“简单”的定义。

最强大的方法是在Oracle中使用heterogeneous connectivity创建指向SQL Server数据库的数据库链接,然后从SQL Server中提取数据或在SQL Server中创建linked server连接到Oracle,然后将数据从SQL Server推送到Oracle。

答案 2 :(得分:0)

有三种方法可以实现自动化:

1)您可以像Paul建议的那样创建一个SSIS包来执行此操作,并且可以通过SQL Agent进行调度,

2)如果您不想处理SSIS,可以从http://www.SQLsharp.com/下载免费的SQL#(SQLsharp)CLR库,并使用DB_BulkCopy存储过程在T-SQL存储过程中执行此操作也可以通过SQL Agent安排。 [注意:我是SQL#的作者]

3)您还可以设置从SQL Server到Oracle的链接服务器,但这可能是一个潜在的安全漏洞。当然,您可以使用只对该单个表具有写访问权的Oracle登录(或类似的表)。

答案 3 :(得分:0)

有很多方法可以做到这一点。您选择哪个取决于您的要求。

  • 使用Excel是好的,如果它是一次性的话。
  • 如果它是一次又一次的事情,那么你可以编写一个简单的.NET应用程序,它使用单个DataSet和多个DataAdapter来进行数据转储。 C# code example here
  • 如果这是常规的事情,那么您可以将上述内容放在Schtasks任务中,或者您可以使用SSIS。我认为SSIS是一种额外费用选择。
  • 如果要求是“在线访问”,则链接数据库可能是合适的。