存儲過程使用變量循環調用


 
--以存儲過程名字為變量調用
declare
vsql varchar2 ( 200 );
i_PROC USER_TABLES.TABLE_NAME% TYPE ;
cursor yb is SELECT object_name FROM USER_PROCEDURES
  where object_name like 'PROC%' AND object_name NOT like 'PROC_ERR_LOG%' AND object_name NOT like 'PROC_TAB%' ;
begin
   i_PROC:= 'PROC_FMS_ACCENTRY2_HL' ;
  open yb;
  loop
  fetch yb into i_PROC;
  exit when yb% notfound ;
vsql:= 'BEGIN ' ||i_PROC|| '(DATE''2018-03-01''); END;' ;
  EXECUTE IMMEDIATE vsql;
  END LOOP ;
  END ;
 
--以存儲過程傳參為變量調用
  DECLARE
 vsql VARCHAR2 ( 100 );
 I_NU NUMBER ;
  cursor yb is select a from aa;
  BEGIN
  I_NU:= 1 ;
  open yb;
  loop
  fetch yb into I_NU;
  exit when yb% notfound ;
vsql:= 'BEGIN PROC_FMS_ACCENTRY2_HL(DATE''2018-03-01''+' ||I_NU|| '); END;' ;
  EXECUTE IMMEDIATE vsql;
   COMMIT ;  
END LOOP ;
  END ;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM