【发布时间】:2022-01-18 14:02:45
【问题描述】:
create or replace package body as p_company as
function f_insert(p_emp_no in emps.bs_emp%type, p_res out number) return number as
begin
delete from com
where com_empno = p_emp_no;
insert into com
(...) select ... from v_com where no = p_emp_no;
end f_insert;
/* function f_update()
funtion f_validate()*/
function f_exe(p_type in varchar2, p_res out number) return number as
cursor crs_no is
select bs_emp
from emps
where bs_emp in (select s.emp_id from v_emp_det s where s.emp_type=p_type);
alt_crs crs_no%rowtype;
begin
p_res = 0;
open crs_no
loop
fetch crs_no into alt_crs
exit when crs_no%notfound;
f_insert(alt_crs.bs_emp, p_res);
/*f_update
f_validate*/
end loop;
close crs_no;
end f_exe;
end p_company;
/* 同样,我有 f_update 和 f_validate 的函数(在代码中注释)。它们在函数 f_exe 中调用。提取每个 bs_emp 并在每个函数中调用它们需要很长时间,是否有任何替代方法? */
【问题讨论】:
-
我删除了plsqldeveloper 标签,因为您似乎不需要专门针对PL/SQL Developer 的解决方案。请在使用前检查每个标签的信息。