Oracle 迴圈呼叫動態SQL語句

feelpurple發表於2016-01-22
有時候需要批次迴圈呼叫儲存過程或包,這時候使用迴圈語句呼叫動態 SQL 的方式很方便。

儲存過程如下:



如果我們想要呼叫2016年1月14日到2016年16日這三天的資料,則可以這樣寫一個匿名塊:

DECLARE
  plsql_block VARCHAR2(500);
  report_date DATE;
BEGIN
  for i in 0 .. 2 loop
    report_date := to_date('2016-01-14', 'yyyy-mm-dd') + i;
    -- Dynamic PL/SQL block invokes subprogram:
    plsql_block := 'BEGIN P_INSERT_BONUSDETAIL(:a); END;';
  
    /* Specify bind arguments in USING clause.
    Specify mode for first parameter.
    Modes of other parameters are correct by default. */
  
    EXECUTE IMMEDIATE plsql_block
      USING IN OUT report_date;
  END LOOP;
END;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-1980895/,如需轉載,請註明出處,否則將追究法律責任。

相關文章