• 締切済み

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

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

みんなの回答

  • geso775
  • ベストアンサー率29% (15/51)
回答No.2

sqlplusのspoolコマンドを使うとよいと思います。 csvへはフィールド毎に連結指定子||を使用して、 spool C:\sample.txt select field1 ||','|| field2 ||','|| field3 from table1; spool off ※sqlplusオプションは任意で設定して下さい。

webuser
質問者

お礼

ありがとうございます。 偶然に落ちているサンプルを見つける事ができました。 http://tsubosak.hp.infoseek.co.jp/3-10/9-memo.html お騒がせしました。

  • karifusa
  • ベストアンサー率40% (2/5)
回答No.1

まず、参考URLの「chcsv」を見てください。 使えそうなら、 まず、下記のようにselect文をがーっと作って --------------------------------------- select "select * from ", table_name from ○○, " ;"; ---------------------------------------- あとは、 一行ずつchcsvに食べさせるように、editorで上手いこと編集してやれば 出来るはずです。

参考URL:
http://www.asahi-net.or.jp/~nq7t-kwbt/
webuser
質問者

お礼

ありがとうございます。 偶然に落ちているサンプルを見つける事ができました。 http://tsubosak.hp.infoseek.co.jp/3-10/9-memo.html お騒がせしました。

関連するQ&A