プロが教える店舗&オフィスのセキュリティ対策術

Oracle上のあるテーブルに変更があったら、そのテーブルのデータをCSVに出力するということをしたいのですが、どのようにするのが、よいでしょうか?知恵を貸してください。

ちょっとだけ考えたこととして、Trigger機能がうまく利用できないかと思ったのですが、CSVと連動するのが難解で悩み中です。
どうか、ご教授ください。お願いします。

A 回答 (4件)

>Oracle上のあるテーブルに変更があったら・・



テーブルに変更というのが、データの挿入/更新/削除なのか、テーブル構造なのかで
トリガの種類は変わりますが、理屈の上では実現可能かと思います。

内容が判らないので、具体例は書きませんが、注意すべき点としては・・

テーブルデータの修正は、同時に複数のセッションから発生しうるので、
トリガも同時に動作する可能性を秘めています。
しかし、単一のCSVファイルへの出力は、複数のトランザクションから
同時には行えません。
CSVファイルを分けるなり、順次出力されるような方策を考える必要があります。

この回答への補足

お返事ありがとうございます。
CSV出力が、No.1の回答の人の補足に書きましたように、困難なので、他に方法があれば、教えていただきたいです。
重ね重ね申し訳ありませんが、どうかお願いします。

補足日時:2006/07/18 11:06
    • good
    • 0

初期化パラメータに、"UTL_FILE_DIR=*"を指定することで、


初期パラメータでのディレクトリ制約を抑制できます。

但し、セキュリティレスな運用になりますので、それで良いかの
判断は必要です。
    • good
    • 0
この回答へのお礼

いつも、お返事ありがとうございます。
その方法を関係者に話したところ、やはりセキュリティーの面で、NGと言われました。
手運用にしようと思いはじめました。
ありがとうございました。

お礼日時:2006/07/19 16:25

DBのバージョンが9.2以降なら、UTL_FILEパッケージで指定するディレクトリはCREATE DIRECTORYで作成されたディレクトリオブジェクトを設定します。

utl_file_dir初期化パラメータは使用しません。
これならDBの再起動は不要です。
(バージョンが合っていることが前提になりますが・・・)
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
残念ながら、8iです。
アドバイスありがとうございました。

お礼日時:2006/07/19 16:22

トリガーと、ファイル出力パッケージを利用すれば出来そうですね。



参考URL:http://634.ayumu-baby.com/plsql/plsql_util_file. …

この回答への補足

お返事ありがとうございました。
URL参照いたしました。ファイル出力の際に、UTL_FILEにディレクトリー指定がなく、仮にしても、Oracleの再起動が必要だということで、ファイル出力パッケージは、却下されそうです。
他にいい案があれば、教えていただきたいです。

補足日時:2006/07/18 11:02
    • good
    • 0

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