如何使用SQLPLUS对CSV格式化文件进行后台处理?

如何使用SQLPLUS对CSV格式化文件进行后台处理?

我想将一些查询提取为CSV输出格式。不幸的是,我不能使用任何花哨的SQL客户端或任何语言来完成它。我必须使用SQLPLUS。

我该怎么做?


忽然笑
浏览 573回答 3
3回答

至尊宝的传说

您也可以使用以下内容,尽管它确实在字段之间引入了空格。set colsep ,     -- separate columns with a commaset pagesize 0   -- No header rowsset trimspool on -- remove trailing blanksset headsep off  -- this may or may not be useful...depends on your headings.set linesize X   -- X should be the sum of the column widthsset numw X       -- X should be the length you want for numbers (avoid scientific notation on IDs)spool myfile.csvselect 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 

潇潇雨雨

我将此命令用于提取维度表(DW)数据的脚本。因此,我使用以下语法:set colsep '|'set echo offset feedback offset linesize 1000set pagesize 0set sqlprompt ''set trimspool onset headsep offspool output.datselect '|', <table>.*, '|'&nbsp; from <table>where <conditions>spool off而且起作用了。我不使用sed格式化输出文件。
打开App,查看更多内容
随时随地看视频慕课网APP