oracle procdure loop 内异常后继续下一次循环

Oracle Procedure 异常处理
本文介绍在Oracle Procedure中如何处理潜在的异常情况,特别是针对视图不存在的问题提供了两种解决方案:一是通过预先检查视图的存在性来避免异常;二是利用EXCEPTION块来捕获并处理异常,确保后续业务逻辑不受影响。
部署运行你感兴趣的模型镜像

1)oracle  procdure 内异常处理


     for num in 1..total loop

        begin

         strsql := 'select ssid from (select temp.sp_id as ssid, rownum as ssnum
                from tempInfo temp) where ssnum='|| num;
         execute immediate strsql into tempspid;

         strsql := 'update tempInfo set black_count =
                (select count(black.id) as blackcount
                from nm_black_and_object black where black.sp_id =' || tempspid || ')
                where sp_id=' || tempspid;
         execute immediate strsql;

        
         table_name := 'NM_NET_USER_'||tempspid;

        dbms_output.put_line(table_name);

         strsql := 'update tempInfo set white_count =
                (select count(distinct us.mdn) from NM_NET_USER_' || tempspid || ' us
                where us.status in (1,2,3))
                where sp_id=' || tempspid;
         execute immediate strsql;--此处可能引发 试图不存在异常 ,但是不该影响下面业务处理 

      end ;      
     end loop;

 

 

 

       --办法一 通过一次select 判断试图是否存在 ,如果存在则执行

         strsql := 'select count(*) from user_tables where table_name='''||table_name||'''';
         execute immediate strsql INTO counter ;

        

         IF counter > 0 THEN

               strsql := 'update tempInfo set white_count =
                (select count(distinct us.mdn) from NM_NET_USER_' || tempspid || ' us
                where us.status in (1,2,3))
                where sp_id=' || tempspid;
         execute immediate strsql;--此处可能引发 试图不存在异常 ,但是不该影响下面业务处理     

        
         END IF ;

 

    ---办法2 通过EXCEPTION

          strsql := 'update tempInfo set white_count =
                (select count(distinct us.mdn) from NM_NET_USER_' || tempspid || ' us
                where us.status in (1,2,3))
                where sp_id=' || tempspid;
         execute immediate strsql;--此处可能引发 试图不存在异常 ,但是不该影响下面业务处理  

         exception

         when others then null ;  

     

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值