12.2 の SQL*Plus の新機能ですが、SET MARKUP CSV ON で、CSV 出力ができるようになっています。
いままで、列が長いと、col ... for a10, col ... for a10 と一生懸命列を整形していましたが、CSV 出力ならそんな心配はないです。
例えば、、、
SQL> set lin 1000 pages 1000 SQL> select username, account_status from dba_users; USERNAME ACCOUNT_STATUS ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ SYS OPEN SYSTEM OPEN ...
12.2 になって、定義が 128 byte になったのでめっちゃ見づらいです。
今までは、これを columnオプションで整形してました。
SQL> col username for a30 SQL> col account_status for a20 SQL> select username, account_status from dba_users; USERNAME ACCOUNT_STATUS ------------------------------ -------------------- SYS OPEN SYSTEM OPEN ...
column オプションで整形するとちょっときれい。
これを csv にすると。。。
SQL> set markup csv on SQL> select username, account_status from dba_users; "USERNAME","ACCOUNT_STATUS" "SYS","OPEN" "SYSTEM","OPEN" ...
いや、見にくいけどね。。。
これをこのまま Excel に貼り付けるときれいです。
あと、何がいいって、SQL の結果について、CSV にしてくれること。
JOIN でも関数でもなんでも OK っていうのがいいですね。