2017-10-18 56 views
-3

我必須使用(Oracle)SQL生成200多個單獨的提取。這些查詢與where條件的例外情況相同。我不能在java中定義列表並引用它。一個SQL語句中的多個報告

僅使用SQL,是否有一種方法可以使過程自動化。

這是一個流程圖,我可以想像:

  1. 定義數組來存儲不同的搜索條件
  2. 儘管陣列沒有用盡

    2.1執行SQL該陣列下標成在名稱中具有該搜索條件的文件(以避免覆蓋文件)

NK你

+2

您使用的是MS SQL Server還是Oracle?不要標記不涉及的產品。 – jarlh

+1

顯示您到目前爲止所嘗試的內容。它看起來像一個純粹的編碼幫助問題 –

+0

您是否在尋找類似於where(itemno =:itemno或:itemno爲null)和(productgroup like:prodgrppattern或prodgrppattern爲null) ...'? –

回答

1

嘗試下面的腳本:

SQL腳本生成你的SELECT語句和卷軸。腳本生成語句,然後在單獨的線程中運行它們

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