oracle中存储过程procedure的异常处理
来源:互联网 发布:云言秒赞网源码 编辑:程序博客网 时间:2024/05/22 03:44
先帖上开发时写的一段存储过程
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, 'Ⅰ', 1, 0)) 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, 'Ⅰ', 1, 0))) 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;
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, 'Ⅰ', 1, 0)) 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, 'Ⅰ', 1, 0))) 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;
--your temporary variables
....
begin
--your sql here
...
commit;
excption
When Others Then
l_errorcode := sqlerrm;
Rollback;
end;
当sql语句出现异常时,就会跳到exception代码段,sqlerrm会显示出错误信息.也可以把它赋给out参数,返回给用户。并回滚。如果sql没有异常,commit,完成操作.
- oracle中存储过程procedure的异常处理
- Oracle存储过程中异常处理总结
- oracle存储过程中异常处理应注意的问题
- oracle procedure 存储过程
- oracle PROCEDURE 存储过程
- Oracle Procedure 存储过程
- Oracle procedure--存储过程
- oracle PROCEDURE 存储过程
- oracle存储过程(procedure)
- Oracle存储过程的异常处理
- Oracle存储过程的异常处理
- oracle 存储过程异常处理
- Oracle 存储过程异常处理
- Oracle 存储过程异常处理 .
- oracle 存储过程异常处理
- Oracle 存储过程异常处理
- Oracle 存储过程异常处理
- Oracle Procedure存储过程简介
- asp.Net 几个配置文件
- MyEclipse快捷键与插件大全
- 编写可移植C/C++程序的要点
- SQLserver自动清除超过三天的记录
- linux下释放cache内存
- oracle中存储过程procedure的异常处理
- SQLserver自动清除超过三天的记录
- SQLserver自动清除超过三天的记录
- SQLserver自动清除超过三天的记录
- 生死不离
- VC++常用数据类型及其操作详解 - TMD 程序员宁有种乎? - 博客园
- 提高英语听力的细节问题
- 用InfoMessage事件记录所有数据庫消息
- houghlines的例子