oracle 游标练习

http://blog.youkuaiyun.com/robinson_0612/article/details/7406672

oracle中为什么要用游标?怎么用?例子:

set  serveroutput on                                                                        

declare                                                                                              
v_name varchar(20);         //声明变量                                            
cursor emp_c1  is select emailname          //定义游标             
from e_mails where emailname='xianshiming'; //按条件查询
begin                                                                                                  
open emp_c1 ;                //打开游标                                               
fetch emp_c1 into v_name;         提取   数据  到va_name         
DBMS_OUTPUT.PUT_LINE(v_name);            //输出显示                           
close emp_c1;                                                     //关闭游标                            

end;

运行成功!!!

把数据取出来,就要用到游标咯
游标分2种,一是隐式游标,一是显式游标。
显式游标是指要我们去给这游标起个名字,打开关闭都是由程序员自己来。
隐式游标是指没有名字的游标,打开关闭都是由系统在后台做。

只要是把数据取出来,都要用到游标。剩下的问题就是什么时候使用显式游标,什么时候使用隐式游标。
我的经验是,任何时候都应该使用显式游标
隐式游标是指用select into语句。当没有数据时有no data found 的异常。有多条数据时会有to many rows的异常。所以在使用隐式游标时,都需要加上异常捕获.实际情况是,我们总是懒得捕获异常,从而代码质量变得很差。
代码参考:
function get_name(p_empno in varchar2) return varchar2 is
retval emp.name%type;
 begin
select name into retval
 from emp
 where empno=p_empno;

return retval;
exception when no_data_found then
...
exception when others then
...
end;
PL/SQL包含隐式游标和显式游标等两种游标类型,其宗隐式游标用于处理select into和DML语句,而显示游标则专门用于处理select语句返回的多行数据。

使用显式游标
为了处理select语句返回的多行数据,可以使用显式游标,使用显式游标包括定义游标,打开游标,提取数据和关闭游标四个阶段。
!!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值