電子書籍の厳選無料作品が豊富!

CSV出力のスクリプトを作成しました。
単純に1つのテーブルをそのままCSVで出力するだけです。
件数は60万件程度です。
問題はたとえばKAIIN_NOの項目が桁数20桁の場合に出力されるCSVが20桁を超えて50桁くらいで出力されたりします。項目桁数と同じではなくてもよいのですが、空白を出力したくないです。
なにかよい方法はありますでしょうか?
※Select文でTrimをかけても効果はありませんでした。

--CSV出力
-- set line 100
-- set echo off コマンド表示を抑止する
-- set termout off 画面出力を抑止する
-- set heading off 列タイトルの表示を抑止する
-- set feedback off 結果メッセージの表示を抑止する
-- set colsep ',' 列と列の区切りをカンマ(,)にする

set line 100
set echo off
set termout off
set heading off
set feedback off
set colsep ','

/* spoolコマンドでファイル出力を開始する */
spool C:\tmp\sample.csv

/* 問い合わせ結果がファイルtest.csvに出力される */
SELECT KAIIN_NO,
STS_NO,
SYOHIN_NO
FROM SAMPLE;
/* spool offでファイル出力を終了する */
spool off

A 回答 (1件)

COLUMNコマンドを使う。



COLUMN KAIN_NO FROMAT ???
COLUMN STS_NO FROMAT ???
COLUMN SYOHIN_NO FROMAT ???
SELECT KAIIN_NO,STS_NO,SYOHIN_NO FROM SAMPLE;

実際のCOLUMNコマンドの?部分は、属性毎に指定の仕方が異なります。
詳しくは、SQL*PLUSユーザーズガイド参照のこと。(コマンドリファレンスの節)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す