我必须使用(Oracle)SQL生成200多个单独的提取。查询是相同的,除了where条件。我不允许在java中定义列表并引用它。
只使用SQL,有没有办法让这个过程自动化。
这是我能想象的流程:
阵列没有用尽
2.1将该数组下标的SQL执行到名称中具有该搜索条件的文件中(以避免覆盖该文件)
谢谢
答案 0 :(得分:1)
尝试以下脚本:
用于生成select语句和假脱机的SQL脚本。脚本生成语句,然后在单独的假脱机中运行它们
set serveroutput on size 1000000
set verify off
set feedback off
spool script.sql
declare
v_main_select varchar2(32000):= 'select col1, col2, col3 from table1'; -- your main statement
begin
for r_query in (select condition, where_statement from (
select 'condition1' condition, 'where id = 10' where_statement from dual -- your condition name and where statements
union
select 'condition2', 'where id = 11' from dual
-- more unions for each condition....
)
) loop
dbms_output.put_line('spool'||' '||r_query.condition);
dbms_output.put_line(v_main_select||' '||r_query.where_statement||';');
dbms_output.put_line('spool off');
end loop;
end;
/
spool off
@script.sql