2
我有一份报告,我需要导出到n个供应商的csv文件。我有一种感觉,我需要不止一次地运行它,所以我想尽可能地自动运行它。我写了一个供应商所需的sql plus,我想知道如何将脚本编写成为每个供应商运行。我有供应商列表存储在数据库的表中,但知道我不能把线轴放在pl/sql块,我想知道如何循环通过每个供应商来创建他们的文件。假脱机多个文件
我有一份报告,我需要导出到n个供应商的csv文件。我有一种感觉,我需要不止一次地运行它,所以我想尽可能地自动运行它。我写了一个供应商所需的sql plus,我想知道如何将脚本编写成为每个供应商运行。我有供应商列表存储在数据库的表中,但知道我不能把线轴放在pl/sql块,我想知道如何循环通过每个供应商来创建他们的文件。假脱机多个文件
我已经做了类似的事情,有一个脚本生成一个辅助脚本,然后执行该脚本。近似示例:
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
这是一个非常酷的技巧。谢谢! – Scott 2010-11-10 20:38:03
您可能需要用供应商名称中的下划线(例如'REPLACE(r.vendor_name,'','_')')替换任何出现在供应商名称中的空格。 – 2010-11-11 04:34:48