create or replace procedure mypro6(PAT_ID in varchar2,
vis_id in number) as
v_count number;
cursor cur_diag_info is --创建一个游标
select *
from demr.EMR_PATI_FIRSTPAGE_DIAGNOSE@EMR_DIWEI
where zylsh = PAT_ID
and zycs = vis_id;
v_diag_info cur_diag_info%rowtype; --定义一个变量 储存查出的游标的数据
begin
select count(*)
into v_count
from demr.EMR_PATI_FIRSTPAGE_DIAGNOSE@EMR_DIWEI
where zylsh = PAT_ID
and zycs = vis_id;
OPEN cur_diag_info;--必须要明确的打开和关闭游标
FETCH cur_diag_info INTO v_diag_info; --查询一条游标 赋值给 v_diag_info
LOOP
EXIT WHEN cur_diag_info%NOTFOUND; --退出标志,当不在查找到时候退出
<执行结构体>
FETCH cur_diag_info INTO v_diag_info; --查询一条游标 赋值给 v_diag_info
END LOOP;
CLOSE cur_diag_info; --关闭游标
commit;
exception ---抛出异常处理
when others then
rollback;
end;
注意事项:在打开游标时,立刻查询一次游标
然后在每次执行代码块后 再做一次查询游标,每次执行代码块之前判断是不是查出了数据
调用语句 call mypro6('123','123');