Oracle 游标

--select  * from student;
--
delete from student where sid>=4;

--delete from "SYSTEM"."STUDENT";
--
SELECT * FROM "SYSTEM"."STUDENT";
/*
--插入30条记录
SET SERVEROUTPUT ON
DECLARE 
I INT:=0;
begin
FOR I IN 1..30 LOOP
INSERT INTO "SYSTEM"."STUDENT" (SID,SNAME,SDATE) VALUES(I,'FRJ'||TO_CHAR(I),SYSDATE);
END LOOP;
commit;
end;
*/


--采用游标查询出sid>2的纪录的 sid;
declare 
 tempsid system.student.sid
%type; --定义一个变量,它的数据类型与student表中的sid类型相同
 cursor myCursor           --定义游标 
 is                        --游标所执行的操作 
   select * from system.student
            
where sid>2;
   selCursorRecord myCursor
%rowtype; --游标实例化
begin
    tempsid:
=0;
    
open myCursor;  --打开游标
    /*if myCursor%isopen then  --测试游标是否打开,打开则返回真,如果没有打开游标就使用fetch语句将提示错误.
       fetch myCursor into selCursorRecord;
       dbms_output.put_line(to_char(' sid: '|| selCursorRecord.sid));
    else
      dbms_output.put_line(to_char(' 游标没有打开.')); 
    end if;
    
*/

    
/*
    while myCursor%isopen loop 
       fetch myCursor into selCursorRecord;
       dbms_output.put_line(to_char(' sid: '|| selCursorRecord.sid));
    end loop;
      --dbms_output.put_line(' 游标中所有的数据行数.'|| to_char(myCursor%rowcount)); 
     
*/

     loop          
--这一种循环结构比上种更为准确
       tempsid:=tempsid+1;
       
exit when myCursor%notfound ;
       
fetch myCursor into selCursorRecord;
       dbms_output.put_line(to_char(
' sid: '|| selCursorRecord.sid || '  rows ' ||tempsid));
     
end loop; 
     dbms_output.put_line(
' 游标中所有的数据行数.'|| to_char(myCursor%rowcount))  ;  --获取游标中的数据行数
     close myCursor;  --关闭游标
    
 
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值