2012-02-16 90 views
1

我有用户在SharePoint(在SQL Server上运行)中输入数据,但我的应用程序显然是在Oracle上运行的Oracle Apex应用程序。我如何将数据自动推入Oracle数据库?如何自动将数据从SQL Server推送到Oracle?

+0

由于我假设你将要频繁地传输数据,所以我会建议设置一个SSIS项目。 – 2012-02-16 16:17:53

+0

查看我刚添加到我的答案的链接。我认为它解释的内容与在SQL Server中设置链接服务器类似,并允许Oracle通过odbc驱动程序直接从SQL访问数据。否则,如果这不适合你,那么SSIS可能是将数据复制到Oracle中的下一个最佳选择。 – 2012-02-16 16:25:40

+0

Apex方面的(未来)变化如何?如果Sharepoint已经根深蒂固,那么可以考虑使用Apex的另一项技术(Java或.NET MVC应用程序) – tbone 2012-02-16 16:25:43

回答

4

首先,你确定你需要将数据复制到Oracle? Oracle Heterogeneous Services允许您在Oracle中使用ODBC连接到非Oracle数据库(假设您使用免费的ODBC透明网关)中创建数据库链接。然后,您的APEX应用程序可以通过发出在数据库链接上运行的查询来查询和报告SQL Server中的数据。蒂姆·霍尔在configuring Heterogeneous Services上有一篇很好的文章(虽然有点过时,一些组件已经重新命名,一般的方法仍然是一样的)。

如果确实需要复制数据,则可以在Oracle中创建物化视图,该视图使用您使用异构服务创建的数据库链接查询SQL Server中的对象,并安排定期刷新这些物化视图。但是,物化视图需要进行全面刷新,这意味着每次刷新时都需要将每行从SQL Server复制到Oracle。这通常会限制您可以切实刷新的频率。如果您需要将数据复制到Oracle数据库,并且您需要发送增量更改以使Oracle方面不会落后太多,则可以使用Streams from a non-Oracle database to an Oracle database,但涉及更多的工作。

0

没有办法做到“自动”,我知道这将跨DBMS工作。像Sql Server Integration Services这样的ETL工具可能会有所帮助,但会有加载延迟(因为它必须轮询更改)。您可以在SharePoint数据库表上构建一些更新触发器,但这会变成支持噩梦。

+0

的方式来执行此操作。因此,我无法像使用PERL脚本一样访问SQL Server数据库? – antonpug 2012-02-16 16:18:27

+0

当然你可以,你会建立你自己的ETL工具。如果这是几张表,那可能很好。成熟的ETL工具可以使它变得更容易,并且可能会表现更好。 – Arbiter 2012-02-16 16:21:01

1

在SQL Server中,您可以设置链接服务器,允许您查看其他数据库的数据。如果不一样,你可能会看到Oracle是否有类似的东西。或者,您可以使用sql的集成服务将数据推送到oracle表中。不幸的是,我只知道如何在SQL Server中设置链接服务器,并且我没有很多关于ssis的经验来告诉你如何做到这一点,但这些是我可以想到的前两种选择,您可以进一步探索。

这里有一个链接,我发现可能会有所帮助,以及:​​

相关问题