-----------------------------------------------------------------------------------------------------------------------
--功能描述:实现指定单位和月份下的月度标准的自动提取并导入到人员的月度汇总表
--创建时间: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;
--功能描述:实现指定单位和月份下的月度标准的自动提取并导入到人员的月度汇总表
--创建时间: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;