Спулинг нескольких файлов - PullRequest
2 голосов
/ 10 ноября 2010

У меня есть отчет, который мне нужно экспортировать в CSV-файл для n поставщиков.У меня есть ощущение, что мне нужно будет запустить это более одного раза, поэтому я хотел бы максимально автоматизировать его.Я написал sql plus, необходимый для одного поставщика, мне интересно, как можно написать сценарий для каждого поставщика.У меня список поставщиков хранится в таблице в БД, но, зная, что я не могу поместить спул в блок pl / sql, я удивляюсь, как я могу пройтись по каждому поставщику, чтобы создать его файл.

1 Ответ

2 голосов
/ 10 ноября 2010

Я сделал подобные вещи, когда один скрипт генерировал вторичный скрипт и затем выполнял этот скрипт.Примерный пример:

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
...