create or replace procedure SM341700btnQXSH(
P_BCRWID in varchar2) is
TYPE id_list IS TABLE OF VARCHAR2(100);
v_ids id_list := id_list();
begin
-- 批量处理ID列表
SELECT column_value BULK COLLECT
INTO v_ids
FROM TABLE(string_split(TRIM(BOTH '''' FROM P_BCRWID), ','));
--v_ids(i),
FORALL i IN 1 .. v_ids.COUNT
update sm_xs_scddzx_tb zx set zx.yfpsl= (select nvl(sum(rbsl),0)
from SM_SC_ZSBCRWMX_TB BCRWMX where
BCRWMX.BCRWID=v_ids(i) and BCRWMX.scddzxid=zx.id) where exists (select 1 from SM_SC_ZSBCRWMX_TB t where t.BCRWID=v_ids(i) and t.scddzxid=zx.id);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE_APPLICATION_ERROR(-20002, 'SM341700btnQXSH');
end SM341700btnQXSH;