• ベストアンサー

SQL-LOADERの逆のもの

先日SQL-LOADERについて質問させてもらいましたが、もう1つ教えて欲しいことがあります。 SQL-LOADERの逆のものはないのでしょうか? 200万件のテーブルのデータを、条件毎に高速エクスポート(固定長テキスト)したいのですが。 つまりSQL-WRITERというものは無いかな~、、、と、、、(笑) 最悪、PL/SQLで200万件をまわして、テキスト出力させようと思っていますが、多分時間が相当かかると思うので、、、、 なにか良い方法があったら教えてください。

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

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

件数が多い場合、この辺の製品なんかどうでしょうか? #私は購入したこと無いですがトライアル版でも使用してみては #いかがでしょうか? http://www.ashisuto.co.jp/prod/fuo/sum/index.html

kiyoabc
質問者

補足

これはすばらしいですね!!! どうしてもダメそうだったら、この製品の購入も考えようと思います。 まずはトライアル版でテストしてみます。 ありがとうございました。

その他の回答 (4)

回答No.5

以前、PERL+DBD-ORACLEの環境で自作しましたが、そんなに遅くなかったですよ。 アプリケーションとしては、為すべき事が少ないので、処理に要する時間は、 オラクルエンジン上の処理時間に左右されます。 レコード長次第ですが、サーバ上で動かすなら、数分で終わるように思いますけどね。

kiyoabc
質問者

お礼

サーバ上で動かすと、数分で終わるのですか? 250バイトのレコード長なんですが、、、、 数分で終わるようだったら、すごくうれしいです。 ありがとうございました。

  • thatsthat
  • ベストアンサー率55% (15/27)
回答No.3

私も通常はsqlplusでやってます。 内容かぶりますが、 no1さんのリンク先で少し迷ったので、一応書いておきます(^^; sqlldrで下のようなsetの後、spoolしつつ、select文を実行します。 set colsep ',' set pagesize 0 set trimspool on set linesize 4096 colsepはカンマ区切りの例ですが、 タブの方がデータ中に含まれにくいので、タブ区切りの方が安心かも知れません。 linesizeの値も例です。充分大きな長さを指定します。

kiyoabc
質問者

お礼

ご回答ありがとうございます。 spoolって初めてなので、とても助かります。 1行が250バイトの200万件データ(500M)なんですが、spoolでどの程度の時間がかかるかやってみようと思います。 ありがとうございました。

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.2
  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.1

SQL*WriterみたいなものはExportユーティリティしかないですね^^; 私なら、ExcelかAccess、VisualBasicを使ってプログラムを組みます。 でも、たしか↓のページで、SQL*Plusだけで固定長テキストでSELECTの結果を出力するというTipsが載っていたと記憶しています。 http://www.tmpgenc.net/ja/j_main.html http://www.mars.dti.ne.jp/~o-shin/new/kowaza/ 探してみてください(汗; Oracleのマニュアルはありませんか?暇な時に目を通しておくとかなり勉強になりますよ。 また、OracleのサイトからPDF形式でマニュアルがダウンロードできるはずです。印刷するととんでもない量になりますが、マニュアルはどんな形式であれ手元においておくことをお奨めします。

kiyoabc
質問者

お礼

なるほど、、、、 これは役にたちそうなサイトですね。 ORACLEのマニュアルは、入手しようと思います。 ありがとうございました。

関連するQ&A