我有一份报告,我需要导出到n个供应商的csv文件。我有一种感觉,我需要不止一次地运行它,所以我想尽可能地自动化它。我为一个供应商编写了sql plus所需的内容,我很想知道如何编写脚本来为每个供应商运行。我在db中的表中存储了供应商列表,但是知道我不能将spool放在pl / sql块中,我想知道如何循环遍历每个供应商来创建他们的文件。
答案 0 :(得分:2)
我通过让一个脚本生成一个辅助脚本然后执行该脚本来完成类似的事情。近似示例:
set serveroutput on
set termout off
spool temp_script.sql
Begin
for r in (select * from vendors) loop
dbms_output.put_line('spool '||r.vendor_name||'.csv');
dbms_output.put_line('data is: '||r.data);
/*feel free to put other output commands here */
dbms_output.put_line('spool off');
end loop;
end;
spool off
@temp_script.sql