Oralce存儲過程動態調用其它過程

-----------------------------------------------------------------------------------------------------------------------
--功能描述:實現指定單位和月份下的月度標準的自動提取並導入到人員的月度彙總表
--創建時間:2016.1.28
--創 建 人:qw
-----------------------------------------------------------------------------------------------------------------------
create or replace procedure P_CAL_YDTJ(v_dwbm in varchar2,v_ny in varchar2) is


     --思路:從統計規則表中提取指定單位的月度統計存儲過程,並執行
     
     --提取指定單位要執行的存儲過程名稱
     Cursor myCusor is
            select ffgcmc from jzjf_gl_gzb where gzid like 'GZ-YDTJ%' and gzzt='1' and instr(v_dwbm,sydw)=1 order by sydw desc;
     myrow myCusor%rowtype;
     n_Count number(8); --計數
     
     v_SQL varchar2(200); --動態執行SQL


begin
     
     n_Count := 0;
     --提取指定單位要執行的存儲過程名稱
     open myCusor;
     loop
       fetch myCusor into myrow;
       exit when myCusor%notfound;


       --計數,目前只取一條記錄即可
       n_Count := n_Count + 1;
       if n_Count = 1 then
         begin
            
             --傳參並執行存儲過程
             --v_SQL := 'insert into APP_UI_TAB(TABID,TABNAME,TABURL,TABPX) values(''1'',''1'',''1'',''1'')';
             v_SQL := 'begin ' || myrow.FFGCMC || '(' || v_dwbm || ',' || v_ny || ');end;';
             DBMS_OUTPUT.PUT_LINE(v_SQL);
             execute immediate v_SQL; --'begin P_YDTJ_0001_XHZYDD(''1032100129'',''201609'');end;';
             commit;
             
         end;
       end if;


     end loop;
     close myCusor;


--異常處理
      exception
          when others then
            begin
              close myCusor;
              rollback;
            end;
end P_CAL_YDTJ;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章