Oracle には データを CSV に出力する方法がないので、SQL*Plus を使って出力するか、もしくはサードパーティ製のツールを使う以外ないようです。
(Oracle Database 10g Express Edition には標準で csv のエクスポート/インポート機能があります。)
Google で検索するとすぐにでてくるのですが...
以下のような SQL ファイルを作成して実行します。
(SQL 文を書かないといけないのがかなりめんどくさい)
SET ECHO OFF SET FEEDBACK OFF SET HEADING OFF SET LINESIZE 10000 SET PAGESIZE 0 SET TRIMSPOOL ON SET TERMOUT OFF SPOOL output.csv SELECT '"'||col1||'",' ||'"'||col2||'",' ||'"'||col3||'",' ||'"'||col4||'",' ||'"'||TO_CHAR(date1, 'YYYYMMDD')||'"' FROM table ; SPOOL OFF EXIT
できたら、SQL ファイルを実行します。
実行方法は
SQL> @hogehoge.sql
です。
- 上記の「set」コマンドを説明します。
- linesize: 1 行の長さを指定します。少し大きめの数字を取っておきましょう。
- pagesize: 数レコードずつの間のセパレータを無効にする。
- trimspool: SPOOLファイルの行末のスペースをトリムする。
- termout: 結果を画面に表示しない。(ただし対話形式では無効)
どう考えても外部ツールを使う方が楽です♪
黒猫SQL Studio 等を使うと楽にCSVに落とせます。しかも、フリーですしね。
以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。