脚本循环查询并将结果导出为ex​​cel

时间:2018-05-24 10:07:18

标签: oracle plsql

我有以下脚本用于循环查询并将结果导出到excel文件中。

begin
    for months in 0..12 loop
      data_dump( query_in     => 'select count(*) from reservation where trunc(update_date) between (select add_months(TRUNC(SYSDATE), -(months) ) from dual) and (select add_months(TRUNC(SYSDATE),-(months+1)) from dual)',
                               file_in      => 'excel_'||months||'.csv',
                              directory_in => 'C:\Users\Administrator\Desktop\test',
                              delimiter_in => '|' );
     end loop;
end;

data_dump是将结果导出到excel文件的过程。

我正在努力制作我使用动态的公式,如下所示:

(select add_months(TRUNC(SYSDATE), -(months) ) from dual)

months变量来自循环,但是当我运行查询时,它会变成错误。

欢迎使用语法帮助。

2 个答案:

答案 0 :(得分:2)

我相信问题就在这里:

'select count(*) 
from reservation 
where trunc(update_date) between 
(select add_months(TRUNC(SYSDATE), -(months) ) from dual) 
and (select add_months(TRUNC(SYSDATE),-(months+1)) from dual)'

在你的情况下,'月'只是文字。您需要以这种方式改变表达式:

'select count(*) 
from reservation 
where trunc(update_date) between 
(select add_months(TRUNC(SYSDATE), -('|| months ||') ) from dual) 
and (select add_months(TRUNC(SYSDATE),-('|| months+1 ||')) from dual)'

答案 1 :(得分:0)

尝试几个月|' ||月||''动态获取价值