自动将结果集导出到csv

时间:2015-03-06 09:46:59

标签: sql oracle oracle11g oracle-sqldeveloper

我必须在oracle 11g database内的SQLDeveloper 3.1上运行多个查询。

例如:

select * from product;
select * from customer;
select * from prices;

目前我正在“按手”导出结果集,我只需右键单击onto the result and then导出它。

我想自动将每个查询的结果集保存在特定文件夹中。

任何建议我如何做到这一点?

更新

我尝试使用csv以及txt的{​​{1}}扩展:

testFile

但是,当我打开文件时,我得到csv和txt以下结果:

spool C:\Users\User\Desktop\testFile.csv --I tried also .txt extension here!!!

set colsep ';'

select * from product;

spool off;

感谢您的回复!

2 个答案:

答案 0 :(得分:1)

set echo off

set feedback off
set linesize 1000
set pagesize 0
set sqlprompt ''
set trimspool on

spool output.csv

select  columnA || ',' || columnB || ',' || ...... 
from table 
where ...

spool off;
exit 0;

然后创建一个调用sql文件的shell脚本

sqlplus >/dev/null 2>&1 "user/pass@DATABASE" << EOF

whenever sqlerror exit 1

@file.sql
EOF

UPDATE刚刚看到你在Windows上,同样的原则仍然适用,你可能需要使用PowerShell

答案 1 :(得分:0)

您可以使用假脱机,http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12043.htm

spool OutFile.txt
select row1||','||row2... from product; --format you prefer
spool off;