![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
現在、夜間バッチで海外FTPサーバーからCSVファイルをDWHサーバーに格納後、
同DWHサーバー内のOracleテーブルにInsertするという処理の開発をしているのですが、
CSVの取得はDOSバッチとTeratermのマクロで取得しようと思っています。
しかし、CSVファイルのInsert処理はPL/SQLで開発を行おうと考えています。
それは、Insert後にそのテーブルと別サーバーのOracleテーブルを使用してデータの加工を行い、
その結果をDWHテーブルにロードしなければいけないからです。
ちなみに、今まではVBしか触ったことしかなくPL/SQLやバッチの作成はは初めてです。
そこで質問なのですが、PL/SQLで他のサーバーのテーブルとリレーションは出来るのでしょうか?
(VBAでは1つのサーバーにしか同時接続できなかったため)
またその場合のフローチャートのイメージが出来ないのですが、箇条書き程度で結構ですので教えていただけないでしょうか?(どこでストアドプロシージャに処理が移行するのかなど....)
長い文章でわかりにくいと思いますが、識者の方がいれば教えていただければ幸いです。
No.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 …
No.2
- 回答日時:
他のサーバのDBとの連携は「データベースリンク」を使用します。
「データベースリンク」と「シノニム」を組み合わせて表があたかも自サーバに存在するかのごとく
扱えます。
No.1
- 回答日時:
そもそも全体のシステム連携の設計が最初ではないでしょうか?
ストアドプロシージャ―の設計・構築はそれがきまってからではないですか?
DBリンクをはれば、他のサーバーのデータを参照できますが、
そもそもDBリンクを作成できるか?ODIなどを利用するかなどの検討が必要です。
またCSVファイルをテーブルへの取り込みは一般的にはSQLローダーを使うと思います。
そのあたりのアーキテクチャなどを考えてから実際のプログラム作成に入ると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- IT・エンジニアリング 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:25
- システム 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:26
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数が選択リストにありません
-
データベース内のテーブル名の取得
-
1ヶ月に土日は何日あるか
-
3つの表を1つに縦に連結する
-
ODBCで接続するとDBに変更/追加...
-
Accessでテーブル名やクエリ名...
-
Accessクエリでの、LIKE条件
-
ACCESSで和暦を西暦に・・・
-
SELECT文でLEFT関数を使うと未...
-
Accessの帳票フォームで重複デ...
-
VBAで複数の数式セルを最終行ま...
-
エクセルVBAで5行目からオート...
-
Accessでテーブルの値をテキス...
-
Access フォームでレコードを更...
-
「直需」の意味を教えてください
-
セルの右クリックで出る項目を...
-
アクセスで複数行の一括入力す...
-
Excel 2019 のピボットテーブル...
-
Accessレコードの追加や変更が...
-
ODBC--リンクテーブル'XXXX'で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数が選択リストにありません
-
テーブルの存在チェックについて
-
異なるサーバのDBデータ同士を...
-
importについて
-
既存DBのテーブル情報をCR...
-
データがある場合のカラムの削除
-
データベース内のテーブル名の取得
-
Timestampの値を自動的に挿入す...
-
PostgreSQLのカラムに"user"と...
-
どれがPrimary Key、ForeignKey...
-
1ヶ月に土日は何日あるか
-
Oracleのトリガーについて
-
NLS_LENGTH_SEMANTICS変更の影響
-
Object Browser相関タブの見方...
-
NLS_CHARSETの変更について
-
Pro*CでのINSERT文
-
オラクルの環境をコピーして全...
-
OracleとSQLserver間のデータ連...
-
テーブルのCreate文
-
Oracleでテーブル構成を表示す...
おすすめ情報