Oracle有参数带返回值的存储过程简单例子:create or replace procedure caf_trackdiffbyId(
sendid in number,
userid in varchar ,
diffnum in number,
lats in number,
latn in number,
lngw in number,
lnge in number,
minid out number ,
maxid out number
) is
currDate date;
minDate date;
maxDate date;
subMin number;Cursor baseMinCursor is select * from caf_usertrack where datetime<currDate order by id desc ;
Cursor baseMaxCursor is select * from caf_usertrack where datetime>currDate order by id asc ;begin
select datetime into currDate from caf_usertrack where id=sendid and userid=userid and
lat >= lats and lat <= latn and lng >= lngw and lng <= lnge ;
begin
if currDate is not null then
begin
minDate := currDate;
maxDate := currDate;
end;
end if;
for sysd in baseMinCursor loop --取得最小的ID值
begin
subMin := round(to_number(minDate-sysd.datetime)*24*60,2);
if subMin <= diffnum then
begin
minDate := sysd.datetime;
end;
else
begin
minid := sysd.id;
dbms_output.put_line("min"||minid);
exit;
end;
end if;
end;
end loop;
for sysd in baseMaxCursor loop --取得最大的ID值
begin
subMin := round(to_number(sysd.datetime-maxDate)*24*60,2);
if subMin <= diffnum then
begin
maxDate := sysd.datetime;
end;
else
begin
maxid := sysd.id;
dbms_output.put_line("maxid"||maxid);
exit;
end;
end if;
end;
end loop;
end;
end caf_trackdiffbyId; Golden Gate安装说明Oracle 存在则更新不存在则插入-方案相关资讯 Oracle基础教程
- Oracle块编程返回结果集详解 (11/10/2013 10:45:58)
- Oracle基础教程之设置系统全局区 (08/22/2013 14:24:00)
- Oracle基础教程知识点总结 (06/18/2013 07:43:32)
| - Oracle基础教程之tkprof程序详解 (10/22/2013 11:49:50)
- Oracle基础教程之sqlplus汉字乱码 (07/18/2013 16:30:00)
- Oracle 管理之 Linux 网络基础 (02/16/2013 18:37:35)
|
本文评论 查看全部评论 (0)