私のオープンソースプログラムMethod5は、このようなタスクのために作られました。
プログラムは、Oracleサーバー上で動作し、このような任意のSQLクライアントから呼び出すことができます。
select * from table(m5('select COL1,COL2 from MY_TABLE'));
それは列がDATABASE_NAME
という名前の追加の列だけでなく、要求を返します。これは、データを並行して収集し、例外を処理し、データをテーブルに格納します。
ターゲットのリストを指定できるオプションの第2パラメータがあります。デフォルトMethod5によって設定されたすべてのデータベースを照会していますが、このような結果を制限することができます。
select * from table(m5('select COL1,COL2 from MY_TABLE', 'dev,test,acme%,db1234'));
非同期で実行することにしているかどうかの結果を保存するためにあなたの表のようなものをより細かく制御できます手順、M5_PROCは、もあります。実際には、 は、何百ものデータベースを信頼性の高い方法で照会するのは非常に難しいかもしれません。少数のデータベースがあなたのコントロールの理由から利用できないことは珍しくありません。それは難しいかもしれませんが、Method5はあなたにそのような状況を処理する能力を与えます。
いくつかの点で、方法5は@ miracle173の回答のパッケージ版です。 1回限りのクエリが必要な場合は、おそらく彼のソリューションに行くのが最善です。しかし、より堅牢なものが必要な場合は、頻繁に呼び出され、コードを投げる必要がある場合は、Method5をインストールして設定する価値があります。インストールや設定の際にヘルプが必要な場合は、直接私に連絡することができます。
ありがとう - これは良いオプションですが、実際のデータベースにインストールしてDBリンクを追加するには、管理者権限が必要です(アプリケーション開発者/開発者エンジニアは必要ありません)。また、それはあまりにも多くのdblinksすることができます。私はリモートで実行し、各DBに別々に接続できるものを探しています。 –