2011-01-25 83 views
1

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

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

在此先感谢

+5

使用Excel将数据从Sql Server传输到Oracle就像从中东运送油到美国的独木舟。 – MusiGenesis 2011-01-25 16:03:36

回答

2

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

2

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

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

0

有三种方式自动完成:

1)你可以做保罗提出并创建了一个SSIS包,将做到这一点,它可以通过SQL代理安排,

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

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

0

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

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

SSIS是免费的。企业版附带其他SSIS任务。唯一的成本是创建和维护包所需的时间。 – 2011-01-25 16:17:44