Trước tiên, hãy viết tập lệnh được tham số hóa của bạn:
define the_year=&1
define the_mon=&2
set lines etc
select * from the_table
where trunc(the_date , 'MM' ) = to_date ( '&the_year&the_mon', 'YYYYMM' )
spool extract_&the_year&the_mon.csv
/
spool off
Sau đó, một tập lệnh trình bao bọc:
@the_script 2014 01
@the_script 2014 02
.
.
.
@the_script 2014 12
Bạn có thể lấy (ish) thông minh và tạo trình bao bọc:
sppol the_wrapper.sql
select '@the_script ' || to_char ( ADD_MONTHS ( trunc(sysdate,'YYYY' ), rn-1 ), 'YYYY MM' )
from ( select rownum rn from dual connect by level < 13 );
spool off
Đừng quên các tùy chọn đã đặt để làm cho tập lệnh đã tạo có thể chạy được (ví dụ:tắt xác minh, tắt phản hồi, v.v.).