📄 车站光标练习_rowcount的问题.txt
字号:
--sql%rowcount与光标%rowcount的区别。
--试分析以下存储过程的调用结果,其中存在什么问题?
--实际在%rowcount是fetch一次增长一次。当全fetch空了,
--%rowcount才是光标对应query的行数。sql%rowcount是隐式光标。总是光标执行完了时才访问。
--所以,sql%rowcount是dml影响的行数。而 光标%rowcount。只有在当全fetch空了才是行数。
create or replace procedure getstation(p_busno in varchar2) is
v_qidian bus.qidian%TYPE;
v_zhongdian bus.zhongdian%TYPE;
v_station busstation.station%TYPE;
cursor c_station(busno varchar2) is select station from busstation
where busno=p_busno;
begin
select qidian,zhongdian into v_qidian ,v_zhongdian from bus where busno=p_busno;
dbms_output.put_line ( p_busno || '路车 ' || '起点站:' || v_qidian || ',终点站: '|| v_zhongdian);
open c_station(p_busno);
--busstation中没有这次车的车站信息。光标对应集为空
if c_station%rowcount =0 then
dbms_output.put_line('没有这次车的车站信息');
end if;
loop
fetch c_station into v_station;
if c_station%notfound then
exit ;
end if;
dbms_output.put_line(v_station);
end loop;
close c_station;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -