• ベストアンサー

Oracle8i データをファイルに出力

Oracle8iでテーブルのデータをCSV形式でファイルに出力するコマンドってなんですか? DBAStudioを使って出力することはできるんですが。。。 よろしくお願いします。

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

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.5

こんにちわ。 #1 のmuyoshid です。 #1 に書き込んだ通りやってみたのですが、以下の内容で何か問題はありますか? 以下、実行結果です。 --------------------------------------------------------------- SQL> set pages 100 SQL> set lines 100 SQL> set colsep , SQL> select * from emp; EMPNO,ENAME ,JOB , MGR,HIREDATE, SAL, COMM, DEPTNO ----------,----------,---------,----------,--------,----------,----------,---------- 7369,SMITH ,CLERK , 7902,80-12-17, 800, , 20 7499,ALLEN ,SALESMAN , 7698,81-02-20, 1600, 300, 30 7521,WARD ,SALESMAN , 7698,81-02-22, 1250, 500, 30 7566,JONES ,MANAGER , 7839,81-04-02, 2975, , 20 7654,MARTIN ,SALESMAN , 7698,81-09-28, 1250, 1400, 30 7698,BLAKE ,MANAGER , 7839,81-05-01, 2850, , 30 7782,CLARK ,MANAGER , 7839,81-06-09, 2450, , 10 7788,SCOTT ,ANALYST , 7566,87-04-19, 3000, , 20 7839,KING ,PRESIDENT, ,81-11-17, 5000, , 10 7844,TURNER ,SALESMAN , 7698,81-09-08, 1500, 0, 30 7876,ADAMS ,CLERK , 7788,87-05-23, 1100, , 20 7900,JAMES ,CLERK , 7698,81-12-03, 950, , 30 7902,FORD ,ANALYST , 7566,81-12-03, 3000, , 20 7934,MILLER ,CLERK , 7782,82-01-23, 1300, , 10 14行が選択されました。

koshinuke
質問者

お礼

なるほど、こういう設定ができるのですか。 これにspoolを使えばわりかし楽に作成できますね。 回答ありがとうございました。

その他の回答 (4)

  • cse_ri2
  • ベストアンサー率25% (830/3287)
回答No.4

DBAStudioはほとんど使ったことがないのですが、 CSV出力は、Oracleの標準ツールでは無いですよ。 (DBAStudioはよく知らないので、除きます。) 普通のOracle使いがCSV出力をする場合、一般の アプリケーション(AccessとかPowerBuilder)で 行うのが一般的です。

koshinuke
質問者

お礼

そうなのですか。。。 回答ありがとうございます。

回答No.3

ファイルに出すというのが検索結果を出力して確認したいという程度なら 以前、私は以下の手法でやったことあります。 自分でselect文でCSVファイルを出力する手作業が面倒ですが... 「コマンド」という質問に対して的外れな回答で恐縮ですがご参考程度に。 <SQL*Plus> SQL> spool FileName(パス付き) select columnA || ',' || columnB || ',' from table (検索結果) SQL> spool off SQL> spool out spool outをしたときにファイルに出力されます。 検出結果に最後に「spool off」も出力されてしまうのが難点ですが。 -以上-

koshinuke
質問者

補足

回答ありがとうございます。質問の仕方が悪くてすみません。 これっぽい気もするのですが、 でもselect文で1カラムづつ書くのはかなり面倒ですね。 イメージとしてはSQL*LoaderでAPPENDするのと逆で テーブル内のデータを出力する命令があったと思うんです。 DBAStudioでは「表データ・エディタ」の「レポート」で行います。

  • Paul_xxx
  • ベストアンサー率56% (27/48)
回答No.2

exportで出来た気がします

koshinuke
質問者

お礼

回答ありがとうございます。質問の仕方が悪くてすみません。

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 SQL*Plus のCOLSEP をカンマに設定してはどうでしょう? 後は、PAGESIZE, LINESIZE も指定した方が良いですが・・・。

koshinuke
質問者

お礼

回答ありがとうございます。質問の仕方が悪くてすみません。

関連するQ&A

  • Oracle8iでテーブルをエクスポートする方法

    Oracle10gを使用しています。Oracle8iから特定のテーブルを抽出してOracle10gに入れようとしましたが、Oracle10gのexpコマンドは互換性の問題で8iに対して使えませんでした。そこでOracle8iのexpコマンドを使用しようかと考えましたが、テーブルごとのエクスポートができないとのことで不可(データベースが大きすぎるため、そもそも8iのExpコマンドを実行できる権限を持っていないのでできませんが)。 仕方がないのでExpコマンドはあきらめて、テーブル定義抽出→データをCSVまたはSQLで抽出という手順でデータを移そうかと考えています。データの抽出はできたのですが、テーブル定義の取得は10gで使えるdbms_metadata.get_ddlが使用できないので取得できずにこまっています。8iでテーブル定義を取得するにはどうしたらいいのでしょうか? なお当方8iのデータベースのSystem/Sys権限を所有していないません。また8iがインストールされているサーバへログインすることもできません。それを考慮した上で実現可能な方法をご提示願います。

  • データ連携 .net2005 VB Oracle9.2i

    質問は、データ連携です。 サーバーA=VB6 Oracle9.2i サーバーB=.net2005 VB Oracle9.2i サーバーが二つがあります。 一度の件数は、2,000件(1,000バイト)×5テーブル 1.サーバーAからサーバーBのデータ連携をする時に、どのようなデータ形式がお勧めでしょうか?  例:「TXT形式」「CS形式」「dmp形式」など 2.サーバーAからサーバーBのデータ連携をするには、どのような運用が理想でしょうか?  例1:TXT形式などで貰い、PGでOracleに更新するなど  例2:「dmp形式」などで貰い、手作業でbatファイルを起動するなど  例3:VBに組み込むなど(その場合のPGの命令方法を教えてください。)  エンドユーザーの作業は、多くしたくないのです。  どのような意見でも構いません。回答お願い致します。

  • ファイル出力

    こんにちは。 VB6.0にて、ファイルの出力についてお聞きしたい事があります。 VB側からDBを見にいき、指定したテーブルのテーブル定義をテキストファイルとして出力したいのですが、プログラミング方法がわかりません。ご存知な方教えて頂けないでしょうか? DBはOracle9iです。  宜しくお願い致します。

  • CSVファイルへ出力

    jspとjavaBeansを使用しています。 顧客情報をDBから検索して明細を画面出力し帳票印刷する ために、データをCSVファイルへ出力したいのですが、 どうやってCSVファイルへ出力するのでしょうか? ごく簡単な形式でいいので教えて下さい。

    • ベストアンサー
    • Java
  • データをテキストファイルに定時自動出力したい

    Oracle初心者です。 Windows Server 2003にインストールされているOracle 9iのデータを、タスクスケジューラを使って、テキストファイルに毎日自動出力したいのですが、どういう方法だと入門者にも可能でしょうか? 難易度の高い上級の言語や高額なソフトウェアの購入は極力避け、バッチファイルで、比較的平易な出力用スクリプトあるいは専用GUI(できればフリーウェア)を 起動させる方法を探しています。 ・出力データ形式は固定長、タブ区切り、カンマ区切りを問いません。 ・データの選択や結合等の機能はなくても、とにかくテキストファイルになれば結構です。 ・夜間に無人で自動出力させたいので、対話形式での実行は困難です。 ご経験のある方、その方法やツールが紹介されているURL、本をご存知の方、よろしくお願いします。

  • AccessとOracleのデータ連携について

    お世話になります。 AccessのデータとOracleのデータ連携について悩んでいます。 Javaのアプリケーションを通して、AccessのデータをOracleに 取り込むシステムを作成しようとしています。 自分で考えた方法としては、 【実装方法1】 出力時 : Accessに【csv出力メニュー】を作成する。データ出力担当者      は、【csv出力メニュー】からFTPにデータの出力を行う。   データ出力時に、企業型DBから通知メールが入力担当者に自 動で送信される。 入力時 : データ入力担当者はメールを受け取り次第、Javaシステ ムのデータ取り込み機能を利用して、FTPから入力対象       データの取り込みJavaシステムを利用して行う。 …です。 ただ、この場合Accessにcsvデータ出力機能を新たに作成しなければなりません。仮にAccessからcsvデータを出力できないといった場合に、 AccessのテーブルをJavaプログラムから直接参照してOracleにデータ登録することは可能なのでしょうか? 若輩者の為、仕様を考えることは初めての経験なのでどなたかご教授いただけませんか?よろしく御願いいたします。

  • csvファイルでの出力について

    C言語初心者です。 プログラミングにおいて質問なのですが、csvファイルを読み込み、 そのデータを用いて計算し、csvファイルで出力するという問題なのですが、C言語においてcsvファイル形式で出力するにはどのような方法がありますか? 補足:ラベル行に全角文字を入力しないといけません。

  • ファイルの読み込みと出力

    ファイルの読み込みと出力 Perl初心者です。よろしくお願いします。 file.csvのようなファイルを読み込んで、 out.csvのように出力するプログラムを作成しているのですが 途中で変な改行が度々入っているためどうしてもうまくいきません。 (file.csvですが、実際は1500行以上あります。 また、最後に必ずendが入っています。 下記のcsvですがテキスト形式で表示した内容です。) 初歩的な質問で申し訳ありません。 調べる限り調べたのですが分かりませんでした。 どうかよろしくお願いします。 「file.csv」 "2010/1/1","C","こんにちは","田中","end", "2009/10/2","B","おはよう","斉藤","end", "2007/3/20","E","Good mor ning","佐藤","end", "1988/8/16","F","こんばんは","中 村","end", "1999/1/10","A","Hello","木村","end", "2005/9/17","D","おはようご ざいます","斎藤","end", 「out.csv」(このように出力したいです) C,こんにちは,田中,2010/1/1,end, B,おはよう,斉藤,2009/10/2,end, E,Good morning,佐藤,2007/3/20,end, F,こんばんは,中村,1988/8/16,end, A,Hello,木村,1999/1/10,end, D,おはようございます,斎藤,2005/9/17,end, 「今書いているプログラムです」 #!/usr/local/bin/perl use strict; use Fatal qw/ open /; my $csv_file = "file.csv"; my @csv = &readCsvFile($csv_file); open(OUT,">out.csv"); for(my $i=0; $i<=5; $i++){    print OUT $csv[$i][1],",";    print OUT $csv[$i][2],",";    print OUT $csv[$i][3],",";    print OUT $csv[$i][0],",";    print OUT $csv[$i][4],","; } close(OUT); sub readCsvFile {    open(DATA, $_[0]);    while(<DATA>) {      chomp;      push @csv, [ split(/",\"/) ];    }    close(DATA);    return @csv; }

    • ベストアンサー
    • Perl
  • Oracle8iへのデータ移行

    Windows Nt4.0:Oracle8からWindows 2000:Oracle8iへデータ移行をしたいと考えています。 そのときに必要となる作業とはどのような手順になるのでしょうか? 宜しくお願いいたします。

  • ACCESS2013 データのエクスポート方法

    ACCESS2013を使用しています。(初心者) テーブルデータをCSVファイル形式で出力する際、1,2行目にタイトル等を入れ、3行目からテーブルデータを出力したいと考えています。 方法が見つからないため、どうすればできるのか教えてください。