• ベストアンサー

テーブルに変更があったらCSV出力

Oracle上のあるテーブルに変更があったら、そのテーブルのデータをCSVに出力するということをしたいのですが、どのようにするのが、よいでしょうか?知恵を貸してください。 ちょっとだけ考えたこととして、Trigger機能がうまく利用できないかと思ったのですが、CSVと連動するのが難解で悩み中です。 どうか、ご教授ください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>Oracle上のあるテーブルに変更があったら・・ テーブルに変更というのが、データの挿入/更新/削除なのか、テーブル構造なのかで トリガの種類は変わりますが、理屈の上では実現可能かと思います。 内容が判らないので、具体例は書きませんが、注意すべき点としては・・ テーブルデータの修正は、同時に複数のセッションから発生しうるので、 トリガも同時に動作する可能性を秘めています。 しかし、単一のCSVファイルへの出力は、複数のトランザクションから 同時には行えません。 CSVファイルを分けるなり、順次出力されるような方策を考える必要があります。

pyontanrie
質問者

補足

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

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

初期化パラメータに、"UTL_FILE_DIR=*"を指定することで、 初期パラメータでのディレクトリ制約を抑制できます。 但し、セキュリティレスな運用になりますので、それで良いかの 判断は必要です。

pyontanrie
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

DBのバージョンが9.2以降なら、UTL_FILEパッケージで指定するディレクトリはCREATE DIRECTORYで作成されたディレクトリオブジェクトを設定します。utl_file_dir初期化パラメータは使用しません。 これならDBの再起動は不要です。 (バージョンが合っていることが前提になりますが・・・)

pyontanrie
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
noname#19197
noname#19197
回答No.1

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

参考URL:
http://634.ayumu-baby.com/plsql/plsql_util_file.html
pyontanrie
質問者

補足

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • csv2tableのテーブルを動的に変更したい

    現在、jquery.csv2table.jsでCSVファイルを読込み、出力されるテーブルデータをグラフ表示しています。 ここで出力されるテーブルデータをブラウザ上から動的(テキストエリア化)に変更でき、グラフデータにも反映できるようにしたいと考えていますが、下記の課題に対して、どこをどのように手を加えてよいかまったくわからない状態です。 「テーブルデータのテキストエリア化」 「テキストエリアからのグラフ、CSVファイルへのフィードバック方法」 HTML、JavaScriptに関して全くの素人で、他サイトを参考にしつつコピペで作っている状態です。 色々探ってはみたのですが、参考となるサイトを見つけることができず、自力での解決も困難な状況で困っています。 参考になりそうなサイトの紹介などでもかまいませんので、皆さんのお力をお貸しください。 どうぞよろしくお願いします。 <参考サイト> http://jsgt.org/lib/jquery/plugin/csv2table/v002/test.htm ※ここの”setting.use ( use jQchart )”が現在の状態に近いです

  • SQL ServerのテーブルをCSVへ出力したい

    お世話になっております。 httpで、インターネット経由にて SQL Serverのテーブルから条件に合致したデータをCSVへ出力しダウンロードする 仕組みを作りたいと考えております。 例 ■テーブルA KeyA 項目1 項目2 001 100 200 002 200 250 003 300 350 select * from KeyA =para paraはパラメタとして渡し、結果をpara.CSVのようにCSVファイルへ出力したいのです。 sqlcmdを使えば、できそうな感じだったのですがよくわからなかったのが (1)sqlcmdのSQL文にパラメタを渡すことができるのか、できるのならどうやるのか (2)出力ファイル名もパラメタ化したいのだができるのか、できるのならどうやるのか (3)ネット経由でsqlcmdを実行することができるのか、できるのならどうやるのか (環境) SQLServer2008R2 IIS ご教授頂けましたら大変ありがたいです。 よろしくお願いいたします。

  • oracleのデータディクショナリからCSV出力のPGM生成

    oracleのテーブルからデータをCSV形式でエクスポートしたいのですが、 expコマンドではCSV形式をサポートしていないようです。  ↓ 仕方なくPL/SQLで順次読みしながらCSV出力するプログラムを書こうと思いました。  ↓ テーブルひとつひとつ手作りするのは面倒なので、 「CSV出力するプログラム」を書くのではなく、 USER_TABLESやUSER_TAB_COLUMNSの情報を参照しながら、 「CSV出力するプログラムを生成するプログラム」を書こうと思いました。  ↓ こんな誰でも思いつく事は誰かが既にやってそうなので、 ネットに落ちているのではないかと思いました。  ↓ という経緯です。 PL/SQLでoracleのデータディクショナリを参照しながら 「CSV出力するプログラムを生成するプログラム」 の雛形がどこかネットに無料で落ちていたら紹介して下さい。 よろしくお願い致します。

  • テーブル名を指定してCsv出力

    こんにちは。 Oracle 9iで開発をしているのですが、 PL/SQLで引数にテーブル名(物理名)を渡せば そのテーブルのデータを全件ファイルに出力するような 処理は書けるでしょうか? お力を貸してください。 よろしくおねがいします。

  • データベースの内容をCSVへ出力。

    VB2005環境、DBはOracle10gです。 データベースから取得したテーブルの内容を、CSVとして 出力する機能をサービスアプリに付け足したいと考えています。 データベースから値を取得する方法についていろいろと調べては みたのですが、VB2005環境では、Windowsアプリケーションとして 作成する方法しか見つからず(コントロールを配置する際に デザイナを使う方法)、クラスライブラリに機能としてSQL発行から CSVとしてデータを出力するまでの処理をどうしたらいいのか わからず困っています。 基本的なところから勉強できるサイトがありましたらご教授 願えないでしょうか? よろしくお願いします。

  • 特定のデータをCSVへ出力について

    例えば、あるテーブルに1000件データがあり、その1000件中の日付が2/1のみをCSVに出力するにはどのようにすればよろしいでしょうか? テーブル毎やデータベース毎のやり方は分かったのですが、特定のデータのみのやり方が分かりません。 どなたか教えていただけないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • vbからのCSV出力について

    VB6.0について質問です。 CSV出力でデータ数がエクセルの限界を超えそうなので 統計ソフトのSPSSというソフトを使おうと思うのですが VBからSPSSへの連携はできるのでしゅうか? 現在、データをカンマ区切りで変数に格納し拡張子をCSVにして出力すると 自動的にCSVファイルが作成されますが SPSSでCSV出力させるにはどうやればよいですか? 当方SPSSは触ったことがないのでお知恵をお貸しください++

  • VB2005でフォームに取り込んだデータをCSVファイルを出力したい

    VB2005環境、DBはSQLサーバです。 VB2005でフォームに取り込んだデータをCSVファイルで出力する 機能を付けたいと考えています。 現状は、SqlDataAdapterのFillメソッドでDBから取得したデータをWindowsフォーム上に出力する機能を持っています。 その出力したデータをクリック一つでCSVファイルとして出力したい と考えています。 かなり調べたのですが出来ませんでした。 どなたかご教授よろしくお願いします。

  • Oracle8でテーブルの列名を変更したい

    Oracle8のテーブルを利用しているのですが、あるテーブルの列名が 誤っていることに気付きました。データはそのままで列名だけ変更したい のですが、できるのでしょうか?できるのでしたら、方法を教えていただけ るとありがたいです。OracleやSQL関係の本を読んでみたのですが 探し出せませんでしたので、こちらでお世話になることにしました。 よろしくお願いします。(私自身はOracleは利用するのみで、ほとんど 素人に近いです。SQL*Plusは使ったことがあります。)

  • bcpによる、テーブル→CSVファイル出力について

    bcpによる、テーブル→CSVファイル出力について SQL Server(2003)のクエリアナライザからテーブル->ファイル出力を試みたのですが、うまくいきません。 サーバからの実行ではなく、クライアントのEnterpriseManagerのクエリ実行です。 このエラーは、サーバ接続自体がうまくいってないということでしょうか? exec master.dbo.xp_cmdshell 'bcp xxxxx.dbo.コピー元テーブル名 out C:\AAA.csv -c -S サーバ名 -U 接続ID名 -P 接続パスワード' 実行結果 SQL Status=S1000 ,NativeError=0 Error=[Microsoft][ODBC SQL Server Driver]一括コピーホストのデータファイルが開けません。 csv->テーブルについては、BULK INSERTで問題無く取り込めているので、単純に逆を行いたいだけです。 bcp使わない方法があれば、それでもいいのですが。。。。。

このQ&Aのポイント
  • dショッピングplalaからのクレジットカード請求に身に覚えがない。問い合わせ可能か?
  • dショッピングplalaからの請求に疑問がある。問い合わせできるのか?
  • dショッピングplalaからのクレジットカード請求についての疑問。問い合わせはできる?
回答を見る