sqlplus クエリから csv 出力ファイルをフォーマットする必要があります。char および varchar 出力フィールドは、テーブルの最大列サイズで出力されます。これは、多くの列に余分な空白とコンマ区切りがあることを意味します。csv ファイルの余分な空白を取り除くにはどうすればよいですか? また、数値フィールドの周りに "" を取得するにはどうすればよいですか?
5847 次
2 に答える
2
フィールドを連結し、自分で引用符を追加する必要があります。また、データ内の二重引用符をエスケープすることを忘れないでください。データにコンマまたは二重引用符が含まれていない限り、二重引用符は厳密には必要ありませんが、それらを追加しても問題はありません。
SELECT '"' || numcol || '",',
'"' || REPLACE(strcol0, '"', '""') || '",',
'"' || REPLACE(strcol1, '"', '""') || '"'
FROM some_table;
これを実行する前に、おそらく見出しとフィードバックをオフにしてから、ファイルにスプールすることをお勧めします。
SQL> set heading off
SQL> set feedback off
SQL> set pagesize 0
SQL> spool output.csv
SQL> SELECT ... FROM ...;
SQL> spool off
于 2010-08-19T01:32:39.253 に答える
0
トリム関数を使用して、先頭/末尾のスペースを取り除くことができます。
http://www.adp-gmbh.ch/ora/sql/trim.html
SELECT TRIM(col) FROM table;
数値フィールドが引用符で囲まれている理由がわかりません。おそらく、列を連結する方法に関係があるのでしょうか?
D.Shawley が尋ねたように、CSV の生成に使用している SQL の例をここに投稿していただけると助かります。
于 2010-01-05T21:08:11.627 に答える