2024年4月3日发(作者:)
今天简单的总结一下PL/SQL中cursor(光标/游标)的用法.
相信不少做开发或维护的DBA在找工作的时候,遇到过类似的面视问题:请简单的描述一下
光标的类型,说一下普通光标和REF光标之间的区别,以及什么时候该正确应用哪一个?
这个题目,我着实难住了不少人,其实他们在具体开发的时候,也还是比较能够把握正确的
光标的使用的,但就是说不出来,当然了,这与大家自身的沟流交通能力是有关系的。有的
人不善于说,但做的却很好。扯的扯就走远了,最后唠叨一下:做技术这条路,能干不能说,
或者说会干不会包装,路是走不"远"的.
显式cursor
显式是相对与隐式cursor而言的,就是有一个明确的声明的cursor.显式游标的声明类似如
下(详细的语法参加plsql ref doc )
cursor cursor_name (parameter list) is select ...
游标从declare、open、fetch、close是一个完整的生命旅程。当然了一个这样的游标是可
以被多次open进行使用的,显式cursor是静态cursor,她的作用域是全局的,但也必须明
白,静态cursor也只有pl/sql代码才可以使用她。下面看一个简单的静态显式cursor的示
例:
declare
cursor get_gsmno_cur (p_nettype in varchar2) is
select gsmno
from gsm_resource
where nettype=p_nettype and status='0';
v_gsmno gsm_%type;
begin
open get_gsmno_cur('139');
loop
fetch get_gsmno_cur into v_gsmno;
exit when get_gsmno_cur%notfound;
dbms__line(v_gsmno);
end loop;
close emp_cur;
open get_gsmno_cur('138');
loop
fetch get_gsmno_cur into v_gsmno;
exit when get_gsmno_cur%notfound;
dbms__line(v_gsmno);
发布评论