SQL开发人员查询结果到动态csv文件

时间:2018-03-30 20:55:53

标签: oracle export-to-csv

我正在尝试使用SQL Developer中的spool命令将查询结果导出到csv文件。它适用于csv文件名是静态的,但现在我需要动态创建文件名,我尝试如下,但显然它不起作用。有人可以帮忙吗?

var CatCode char(5) ;
exec :CatCode := 'ZK';
exec :csvFile := 'c:\temp\MyCSV_' ||  trim(:CatCode) || '.csv';    
set feedback off;
SET SQLFORMAT csv;
spool csvFile
SELECT * FROM Products WHERE CategoryCode = :CatCode;
spool off;
SET SQLFORMAT;
set feedback on;

我尝试使用spool:csvFile或spool& csvFile进行假脱机命令,但没有帮助。

1 个答案:

答案 0 :(得分:0)

VAR CatCode CHAR ( 5 );
EXEC :CatCode := 'ZK';
SET FEEDBACK OFF;
SET SQLFORMAT csv;
SET TERMOUT OFF

column filename new_value filename
SELECT 'c:\temp\MyCSV_' ||  trim(:CatCode) || '.csv' as filename FROM DUAL;

SPOOL &filename

SELECT * FROM Products WHERE CategoryCode = :CatCode;

SPOOL OFF;
SET SQLFORMAT;
SET FEEDBACK ON;

另外,您可能需要查看此askTOM文章。

https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:3581757800346555562