自动将结果集导出到csv

Automatically export result sets into csv

我必须在 SQLDeveloper 3.1.

内 运行 对 oracle 11g database 进行多次查询

例如:

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

目前我正在导出结果集 "per hand",我只需右键单击onto the result and then导出即可。

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

有什么建议吗?

更新

我尝试使用 csvtxt 扩展 testFile:

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

set colsep ';'

select * from product;

spool off;

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

> set colsep '
> select * from product

感谢您的回复!

您可以使用假脱机,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;
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;

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

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

whenever sqlerror exit 1

@file.sql
EOF

更新刚刚看到你在 windows,同样的原则仍然适用,你可能需要使用 PowerShell