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



我试图用SQL Developer中的Spool命令将查询结果导出到CSV文件。当CSV文件名是静态的时,它可以工作,但是现在我需要动态创建文件名,并且我尝试以下操作,但显然它不起作用。有人可以帮忙吗?

var CatCode char(5) ;
exec :CatCode := 'ZK';
exec :csvFile := 'c:tempMyCSV_' ||  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:tempMyCSV_' ||  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:0::::: p11_question_id:358175780034655555562

最新更新