亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用SQLPLUS對CSV格式化文件進行后臺處理?

如何使用SQLPLUS對CSV格式化文件進行后臺處理?

忽然笑 2019-07-19 15:34:04
如何使用SQLPLUS對CSV格式化文件進行后臺處理?我想將一些查詢提取為CSV輸出格式。不幸的是,我不能使用任何花哨的SQL客戶端或任何語言來完成它。我必須使用SQLPLUS。我該怎么做?
查看完整描述

3 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

您也可以使用以下內容,盡管它確實在字段之間引入了空格。


set colsep ,     -- separate columns with a comma

set pagesize 0   -- No header rows

set trimspool on -- remove trailing blanks

set headsep off  -- this may or may not be useful...depends on your headings.

set linesize X   -- X should be the sum of the column widths

set numw X       -- X should be the length you want for numbers (avoid scientific notation on IDs)


spool myfile.csv


select table_name, tablespace_name 

  from all_tables

 where owner = 'SYS'

   and tablespace_name is not null;

產出如下:


    TABLE_PRIVILEGE_MAP           ,SYSTEM                        

    SYSTEM_PRIVILEGE_MAP          ,SYSTEM                        

    STMT_AUDIT_OPTION_MAP         ,SYSTEM                        

    DUAL                          ,SYSTEM 

...

這將比鍵入所有字段并將它們與逗號連接起來要簡單得多。如果需要,可以使用一個簡單的sed腳本來刪除逗號前面的空格。


像這樣的東西可能有用.(我的sed技能很生疏,所以這可能需要工作)


sed 's/\s+,/,/' myfile.csv 


查看完整回答
反對 回復 2019-07-19
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

我將此命令用于提取維度表(DW)數據的腳本。因此,我使用以下語法:


set colsep '|'

set echo off

set feedback off

set linesize 1000

set pagesize 0

set sqlprompt ''

set trimspool on

set headsep off


spool output.dat


select '|', <table>.*, '|'

  from <table>

where <conditions>


spool off

而且起作用了。我不使用sed格式化輸出文件。


查看完整回答
反對 回復 2019-07-19
  • 3 回答
  • 0 關注
  • 597 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號