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

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

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

我该怎么做?


白衣染霜花
浏览 493回答 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格式化输出文件。

慕桂英3389331

我看到了一个类似的问题.。我需要从SQLPLUS对CSV文件进行后台处理,但是输出有250列。为了避免烦人的SQLPLUS输出格式,我做了什么:set&nbsp;linesize&nbsp;9999set&nbsp;pagesize&nbsp;50000spool&nbsp;myfile.csvselect&nbsp;xfrom(select&nbsp;col1||';'||col2||';'||col3||';'||col4||';'||col5||';'||col6||';'||col7||';'||col8||';'||col9||';'||col10||';'||col11||';'||col12||';'||col13||';'||col14||';'||col15||';'||col16||';'||col17||';'||col18||';'||col19||';'||col20||';'||col21||';'||col22||';'||col23||';'||col24||';'||col25||';'||col26||';'||col27||';'||col28||';'||col29||';'||col30&nbsp;as&nbsp;xfrom&nbsp;(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;here&nbsp;is&nbsp;the&nbsp;"core"&nbsp;select &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;));spool&nbsp;off问题是你会失去列头名.。您可以添加以下内容:set&nbsp;heading&nbsp;offspool&nbsp;myfile.csvselect&nbsp;col1_name||';'||col2_name||';'||col3_name||';'||col4_name||';'||col5_name||';'||col6_name||';'||col7_name||';'||col8_name||';'||col9_name||';'||col10_name||';'||col11_name||';'||col12_name||';'||col13_name||';'||col14_name||';'||col15_name||';'||col16_name||';'||col17_name||';'||col18_name||';'||col19_name||';'||col20_name||';'||col21_name||';'||col22_name||';'||col23_name||';'||col24_name||';'||col25_name||';'||col26_name||';'||col27_name||';'||col28_name||';'||col29_name||';'||col30_name&nbsp;from&nbsp;dual;select&nbsp;xfrom(select&nbsp;col1||';'||col2||';'||col3||';'||col4||';'||col5||';'||col6||';'||col7||';'||col8||';'||col9||';'||col10||';'||col11||';'||col12||';'||col13||';'||col14||';'||col15||';'||col16||';'||col17||';'||col18||';'||col19||';'||col20||';'||col21||';'||col22||';'||col23||';'||col24||';'||col25||';'||col26||';'||col27||';'||col28||';'||col29||';'||col30&nbsp;as&nbsp;xfrom&nbsp;(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;here&nbsp;is&nbsp;the&nbsp;"core"&nbsp;select &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;));spool&nbsp;off我知道这有点硬,但对我来说很管用.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL