oracle中存储过程procedure的异常处理

本文介绍了一个具体的存储过程示例,该过程用于从数据库中获取当天空气质量最佳的城市及近30天内一级空气质量天数最多的城市,并将这些信息更新到参数表中。
部署运行你感兴趣的模型镜像

 先帖上开发时写的一段存储过程

 

create or replace procedure PROC_TO_T_PARAMETER is 

  l_airBestCity 
varchar2(50); 
  l_currentDay  date; 
  l_air30daysI  
varchar2(100); 
  l_errorcode   
varchar2(100); 
   
begin 
  
-- author sunchengliang 
  --当天时间 
  select max(tt.oper_date) into l_currentDay from city_day tt; 

  
--当天空气质量最好的城市  
  select t.city 
    
into l_airBestCity 
    
from city_day t 
   
where t.oper_date = l_currentDay 
     
and t.pollution_indeces = 
         (
select min(ttt.pollution_indeces) 
            
from city_day ttt 
           
where ttt.oper_date = l_currentDay); 

  
--30内一级天数最多的城市   
     select tt.city 
    
into l_air30daysI 
    
from (select t.city, sum(decode(grade, ''10)) total1 
            
from city_day t 
           
where t.oper_date > l_currentDay - 30 
             
and t.oper_date  < l_currentDay 
           
group by t.city 
           
order by total1 desc) tt 
   
where tt.total1 = (select max(sum(decode(grade, ''10))) total1 
                        
from city_day t 
                       
where t.oper_date > l_currentDay - 30 
                         
and t.oper_date  < l_currentDay 
                       
group by t.city) and rownum=1
  
--更新到db  
  update T_PARAMETER t 
     
set t.p_content = '今天空气量最好的城市是:'  ¦ ¦ l_airBestCity  ¦ ¦ '#'  ¦ ¦ 
                       
'最近30天内空气质量一级天数最多的城市:' ¦ ¦l_air30daysI 
   
where t.p_type = '1'
  
Commit
exception 
  
When Others Then 
    l_errorcode :
= sqlerrm; 
    
Rollback
   
end PROC_TO_T_PARAMETER; 

请注意格式

create or replace procedure PROC_TO_T_PARAMETER is 
--your temporary variables
   .... 
begin
--your sql here
  ...
  
commit;
excption
     
When Others Then 
     l_errorcode :
= sqlerrm; 
     
Rollback
end;

当sql语句出现异常时,就会跳到exception代码段,sqlerrm会显示出错误信息.也可以把它赋给out参数,返回给用户。并回滚。如果sql没有异常,commit,完成操作.

 

 

 

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

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值