2012-02-16 87 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的經驗來告訴你如何做到這一點,但這些是我可以想到的前兩種選擇,您可以進一步探索。

這裏有一個鏈接,我發現可能會有所幫助,以及:​​

相關問題