Gblog

おもにTips

SET MARKUP CSV ON が使える件

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 っていうのがいいですね。