2012-02-16 17 views
1

ユーザーはSharePointにデータを入力していますが(SQL Serverで実行中)、そのデータを表示するアプリケーションは明らかにOracle上で動作するOracle Apexアプリケーションになります。データをOracleデータベースに自動的にプッシュするにはどうすればよいですか?SQL ServerからOracleに自動的にデータをプッシュする方法は?

+0

私はあなたが頻繁な間隔でデータを転送しようとしているので、私はSSISプロジェクトをセットアップすることをお勧めします。 –

+0

私の答えに追加したばかりのリンクを参照してください。私は説明していることは、SQL Serverにリンクサーバーを設定するのに似ていると思うし、OracleがODBCドライバを介してSQLから直接データにアクセスすることを可能にします。それ以外の場合は、それがあなたのために動作しない場合、おそらくSSISは、Oracleにコピーされたデータを取得するための次善策です。 –

+0

Apex側から(未来)はどうなるのですか?もし既にSharepointがよく定着しているのであれば、おそらくApexの別の技術(Javaや.NETのmvcアプリかもしれません)を使うことを検討してください。 – tbone

答えて

4

まず第一に、あなたはOracleへデータを複製する必要があることを確信していますか? Oracle Heterogeneous Servicesを使用すると、ODBCを使用してOracle以外のデータベースに接続するデータベース・リンクをOracleで作成できます(無料のODBC用透過ゲートウェイを使用することを前提とします)。 APEXアプリケーションは、データベース・リンクを介して実行される照会を発行することにより、SQL Server内のデータを照会して報告することができます。ティムホールは良い記事を持っています(少し日付ですが、いくつかのコンポーネントの名前が変更されていますが、一般的なアプローチはまだ同じです)。configuring Heterogeneous Services

異機種間サービスを使用して作成したデータベース・リンクを使用してSQL Serverのオブジェクトを問い合せ、マテリアライズド・ビューを定期的に更新するようにスケジュールする、マテリアライズド・ビューをOracleで作成できます。マテリアライズド・ビューは完全リフレッシュを実行する必要があります。リフレッシュが発生するたびに、すべての行を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

+0

もちろん、独自のETLツールを構築することもできます。それはおそらく良いのカップルのテーブルの場合。成熟したETLツールはそれをより簡単にすることができ、おそらくより優れたパフォーマンスを発揮します。 – Arbiter

1

SQL Serverでは、他のデータベースのデータを表示できるようにリンクサーバーを設定できます。 Oracleに類似したものがあるかどうかは、類似しているかどうかで判断できます。あるいは、SQLの統合サービスを使用して、データをOracle表にプッシュすることもできます。残念ながら、私はSQL Serverでリンクサーバーを設定する方法のみを知っていますし、それを行う方法を教えるためにssisの多くの経験はありませんが、それは私が考えることができる最初の2つのオプションです。

ここで私はそれが同様に役に立つかもしれません見つかったリンクです:​​

関連する問題