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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章