删除间隔中的空白行在间距为CSV文件时选择查询

时间:2012-07-23 17:13:59

标签: sql export-to-csv oracle-sqldeveloper

我正在使用oracle sql developer将一些数据假脱机到csv文件。到目前为止,我把它放在一个文件中:

SET head OFF;
SET echo OFF; 
SET termout OFF; 
SET verify OFF; 
set colsep ,
set pagesize 0
set feedback off
@sandbox.sql

Sandbox.sql包含:

spool "C:\TEMP\test.csv"
select 'Date,Average' from dual;
select to_char(rollup_time, 'mm/dd/yyyy'), average from sample_table
order by 1;
spool off;

这会生成一些如下所示的csv文件:

日期平均值

2012年1月1日900
1/2/2012 910

我想摆脱列标题后面的空白行,但是我无法设置trimspool(选项不存在)并且union all无法工作,因为数据类型不同。有谁知道如何在oracle的sql开发环境中删除该空白行?

3 个答案:

答案 0 :(得分:1)

使用“Set Newpage none”命令。

SET NEWP [年龄] {1 | n |没有} 设置从每页顶部到顶部标题要打印的空白行数。值为零会在每个页面的开头(包括第一页)放置一个换页,并在大多数终端上清除屏幕。如果将NEWPAGE设置为NONE,则SQL * Plus不会在报告页面之间打印空白行或换页。

答案 1 :(得分:1)

使用SQL Developer(版本18.2)在这里

我没有您的桌子,但是我有HR.EMPLOYEES。

cd c:\sqldev
set feedback off
set pagesize 100
set sqlformat csv
spool so-no-blanks.csv
select 'Date, Average' from dual;
select to_char(hire_date, 'mm/dd/yyyy'), salary from employees
fetch first 3 rows only;
spool off

-设置sqlformat csv:告诉SQL Developer的脚本引擎以CSV格式自动返回结果集(还提供json,xml,insert,html,delimited)

SQL Developer的脚本引擎在几年前进行了更新,以支持SQL * Plus提供的几乎所有功能,以及更多功能。像“ cd”命令一样-当执行“假脱机”之类的操作时,它会设置路径

enter image description here

答案 2 :(得分:0)

我刚刚发现自己处于与roostersign相同的情况,我设法避免在SQL * Plus中我的两个查询之间的空白:

set space 0

我通过测试这里的建议到达那里:SQL*Plus: Formatting query results