SM341700btnQXSH

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;

 

posted @ 2025-08-14 10:51  知行一体2  阅读(4)  评论(0)    收藏  举报