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

SQL developer query results to dynamic csv file

我正在尝试使用 SQL Developer 中的假脱机命令将我的查询结果导出到 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 尝试了 spool 命令,但没有帮助。

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