假脱机多个文件
Posted
技术标签:
【中文标题】假脱机多个文件【英文标题】:Spooling multiple files 【发布时间】:2010-11-10 19:51:38 【问题描述】:我有一份报告,我需要为 n 个供应商导出到 csv 文件。我有一种感觉,我需要多次运行它,所以我想尽可能地自动化它。我为一个供应商编写了所需的 sql plus,我想知道如何编写脚本来为每个供应商运行。我将供应商列表存储在数据库的表中,但知道我不能将假脱机放在 pl/sql 块中,我想知道如何循环遍历每个供应商来创建他们的文件。
【问题讨论】:
【参考方案1】:我通过让一个脚本生成辅助脚本然后执行该脚本来完成类似的事情。近似示例:
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
【讨论】:
您可能需要将供应商名称中出现的任何空格替换为下划线(例如REPLACE(r.vendor_name,' ','_')
)。以上是关于假脱机多个文件的主要内容,如果未能解决你的问题,请参考以下文章