梦幻之旅

DEBUG - 天道酬勤

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  671 随笔 :: 6 文章 :: 256 评论 :: 0 Trackbacks
游标,从字面意思理解,是游动的光标. 类似于c语言里的指针,是数据库提供的访问结果集的方式.
游标包含两种,显示游标和隐式游标.

1).要使用显示游标要经过以下四个步骤:

1.定义游标
2.打开游标
3.访问游标
4关闭游标
例子如下:
create or replace procedure cur_test
is
    
--定义游标
    cursor cursor_task(gid in numberis
        
select * from es_sms_task where group_id=gid;

    task es_sms_task
%Rowtype;
begin
    
--打开游标
    open cursor_task(1);
    
--访问游标
    fetch cursor_task into task;

    
--(cursor_task%found 游标结果集是否存在)
    while cursor_task%found
      loop
        dbms_output.put_line(task.id
||':'||task.name);
        
--访问游标
        fetch cursor_task into task;
      
end loop;

    
--关闭游标
    close cursor_task;
end cur_test;

另一种for写法:
create or replace procedure cur_test
is
    
--定义游标
    cursor cursor_task(gid in numberis
        
select * from es_sms_task where group_id=gid;

    task es_sms_task
%Rowtype;
begin
    
--打开游标
    open cursor_task(1);
    loop
      
fetch cursor_task into task;
      
exit when cursor_task%NOTFOUND; 
        dbms_output.put_line(task.id
||':'||task.name);
      
end loop;

    
--关闭游标
    close cursor_task;
end cur_test;


2).隐式游标
例子如下
create or replace procedure cur_test2
is
begin
    
for c in (select * from es_sms_task)
      loop
        dbms_output.put_line(c.id
||':'||c.name);
      
end loop;
end cur_test2;
/

posted on 2011-07-07 17:02 HUIKK 阅读(136) 评论(0)  编辑  收藏 所属分类: DataBase

只有注册用户登录后才能发表评论。


网站导航: