ORACLE游标使用问题求解

oqq__L 2019-12-01 10:56:50
各位老师好,请教一个问题。
我用ORACLE 游标中,需要一次执行中,取下一条数据的date值,与当前这行的date值。请问要怎么写啊???
我设置了一个变量bc_date1,写两个FETCH,这样可以取到下一条数据的值,但是游标执行过程中,会调着执行。。
DECLARE CURSOR cur_bl IS
select to_char(bc_date,'yyyy-mm-dd hh24:mi')as bc_date,bl_no_bc as bc_date
from ysh_record
where inpatient_no=row_cur_patient.inpatient_no and
admiss_times=row_cur_patient.admiss_times and
bl_no =row_cur_patient.bl_no
order by bc_date asc ;
row_cur_bl cur_bl%ROWTYPE;

begin
open cur_bl;
loop
FETCH cur_bl INTO row_cur_bl;
EXIT WHEN cur_bl%NOTFOUND OR cur_bl%NOTFOUND IS NULL;
bc_date1:=row_cur_bl.bc_date;
bl_no_bc1:=row_cur_bl.bl_no_bc;

FETCH cur_bl INTO row_cur_bl;
EXIT WHEN cur_bl%NOTFOUND OR cur_bl%NOTFOUND IS NULL;
if cur_bl%rowcount=0 then
bc_date1:='0000';
end if;

if bl_text IS NOT NULL then

text_pos1:=instr(bl_text,row_cur_bl.bc_date);
text_pos2:=instr(bl_text,bc_date1) ;
end if;
...全文
65 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
js14982 2019-12-02
  • 打赏
  • 举报
回复
了解一下lag和lead这两个函数
chengccy 2019-12-02
  • 打赏
  • 举报
回复
1、用楼上的偏移函数lag,lead处理; 2、将游标的结果集反序排,在遍历的时候记住上一条数据就行。 即上一条和当期条就是你原来顺序的当前条和下一条

1,617

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧