自动将结果集导出到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
导出即可。
我想将每个查询的结果集自动保存在特定文件夹中。
有什么建议吗?
更新
我尝试使用 csv
和 txt
扩展 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
我必须在 SQLDeveloper 3.1
.
oracle 11g database
进行多次查询
例如:
select * from product;
select * from customer;
select * from prices;
目前我正在导出结果集 "per hand",我只需右键单击onto the result and then
导出即可。
我想将每个查询的结果集自动保存在特定文件夹中。
有什么建议吗?
更新
我尝试使用 csv
和 txt
扩展 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