dポイントプレゼントキャンペーン実施中!

現在、夜間バッチで海外FTPサーバーからCSVファイルをDWHサーバーに格納後、
同DWHサーバー内のOracleテーブルにInsertするという処理の開発をしているのですが、
CSVの取得はDOSバッチとTeratermのマクロで取得しようと思っています。
しかし、CSVファイルのInsert処理はPL/SQLで開発を行おうと考えています。
それは、Insert後にそのテーブルと別サーバーのOracleテーブルを使用してデータの加工を行い、
その結果をDWHテーブルにロードしなければいけないからです。
ちなみに、今まではVBしか触ったことしかなくPL/SQLやバッチの作成はは初めてです。
そこで質問なのですが、PL/SQLで他のサーバーのテーブルとリレーションは出来るのでしょうか?
(VBAでは1つのサーバーにしか同時接続できなかったため)
またその場合のフローチャートのイメージが出来ないのですが、箇条書き程度で結構ですので教えていただけないでしょうか?(どこでストアドプロシージャに処理が移行するのかなど....)
長い文章でわかりにくいと思いますが、識者の方がいれば教えていただければ幸いです。

A 回答 (3件)

> CSVの取得はDOSバッチとTeratermのマクロで取得しようと思っています。


windows標準添付のfpコマンドは転送エラーを拾えません。ftpgetとかPerlのNET::ftpかrubyのnet/ftpなら拾えた気がします。

> CSVファイルのInsert処理はPL/SQLで開発を行おうと考えています。
Sql*Loaderを使用しない理由が理解出来ません。Insert処理はSql*Loaderの方が圧倒的に高速です。特に全件置き換えの場合はDirectモードが使用可能です。

> PL/SQLで他のサーバーのテーブルとリレーション
「他のサーバーのテーブル」がOracleならデータベースリンクで参照が可能です。ただし、リモートテーブルとのJOINはINDEXを使用できません。パフォーマンス的にかなり苦しいことが予想されます。
REMOTEテーブルのデータ量が少なければHashJoinを利用できる可能性もありますが。
データベースリンクについてはマニュアルを参照してください。
http://download.oracle.com/docs/cd/E16338_01/ser …
    • good
    • 0
この回答へのお礼

詳細な説明ありがとうございました。
リンク先も参考にさせていただきます。

お礼日時:2010/12/27 10:32

他のサーバのDBとの連携は「データベースリンク」を使用します。


「データベースリンク」と「シノニム」を組み合わせて表があたかも自サーバに存在するかのごとく
扱えます。
    • good
    • 0
この回答へのお礼

参考にさせていただきます。
ありがとうございました。

お礼日時:2010/12/27 10:31

そもそも全体のシステム連携の設計が最初ではないでしょうか?


ストアドプロシージャ―の設計・構築はそれがきまってからではないですか?
DBリンクをはれば、他のサーバーのデータを参照できますが、
そもそもDBリンクを作成できるか?ODIなどを利用するかなどの検討が必要です。
またCSVファイルをテーブルへの取り込みは一般的にはSQLローダーを使うと思います。
そのあたりのアーキテクチャなどを考えてから実際のプログラム作成に入ると思います。
    • good
    • 0
この回答へのお礼

なるほど、おおまかな流れはわかりました。
ありがとうございました。

お礼日時:2010/12/27 10:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!