PL\SQL学习笔记(五) 游标

原创 2013年12月03日 10:21:06

       PL\SQL 语句用游标来管理SQL语句返回的记录. 游标是为处理这些语句而分配的一个私有SQL工作区,用来执行和存储SQL语句处理的信息.Oracle服务器用游标来命名每一个SQL工作区,不同的SQL语句,游标的使用情况不同,可将游标分为两类:隐式游标和显示游标.

       隐式游标对应于DML语句和select语句的执行空间和相应的信息.系统自动将此类游标命名为SQL.例如,执行一条SELECT语句时,Oracle 自动为该语句创建一个游标,当"打开"游标时,实际上是执行该SELECT语句将数据读取到SQL工作区中;当移动游标指针时,实际上是将游标指针指向该SELECT语句返回的下一条记录.

       显示游标一般用于需要对多条记录按顺序一条一条进行处理的场合,能方便地控制数据的处理过程,被处理的数据集成为活动数据集.显示游标由程序员定义和维护,名称由程序员确定.

   

declare
 cursor c is
 select * from emp;
v_emp c%rowtype;
begin
open c;
fetch c into v_emp;
dbms_output.put_line(v_emp.ename);
close c;
end;
/

游标加入循环

declare
   cursor c is
   select * from emp;
v_emp c%rowtype;
begin
 open c;
loop

fetch c into v_emp;
exit when (c%notfound);
dbms_output.put_line(v_emp.ename);

end loop;
close c;
end;
/

游标的属性:


 1)%ISOPEN:  布尔型.判断指定的游标是否已经打开

 2)%NOTFOUND 布尔型.如最近一次fetch操作没有返回结果,则值为TRUE .

 3)%FOUND 布尔型 .最近一次fetch操作有返回结果,则值为TRUE .

 4)%ROWCOUNT 数值型 ,取值为当前位置返回的记录数,可用该属性控制要处理的记录数.


for 循环:


declare
   cursor c is
       select * from emp;
  begin
 for v_emp in c loop
    dbms_output.put_line(v_emp.ename);
end loop;
end;
/

带参数的游标:

declare
 cursor c (v_deptno emp.deptno%type,v_job emp.job%type)
  is
     select ename,sal from emp where deptno = v_deptno and job = v_job;
   --v_temp c%rowtype;
begin
 for v_temp in c(30,'CLERK') loop
    dbms_output.put_line(v_temp.ename);
end loop;
end;
/

使用游标进行更新 : 非重点


declare
 cursor c
  is
  select * from emp2 for update;
--v_temp c%rowtype ;
begin

   for v_temp in c loop
  if(v_temp.sal<2000) then
 update emp2 set sal =sal *2 where current of c;
   elsif (v_temp.sal = 5000) then
  delete from emp2 where current of c;
end if ;
end loop;
commit;
end;
/


pl SQL 学习笔记(五)oracle 游标

1、  游标属性。 游标属性的值总是属于最后一次执行的sql语句。除%isopen 的初值是FALSE 之外,都是NULL。 SQL%FOUND 如果有修改则返回true SQL%NOTFOUN...

尚学堂马士兵Oracle学习笔记之六:PL/SQL中的游标,存储过程,触发器

---------------------PL/SQL中的重点cursor(游标)和指针的概念差不多----------------------        declare             ...

PL_SQL个人学习笔记

  • 2011年05月29日 20:56
  • 7KB
  • 下载

PL/SQL学习笔记4

  • 2008年04月21日 15:31
  • 42KB
  • 下载

Oracle笔记 九、PL/SQL 游标的使用

--演示隐式游标,系统自动声明,自动打开,自动使用并且自动关闭 begin update emp set sal = 1000; dbms_output.put_line('...

PL/SQL学习笔记6

  • 2008年04月21日 15:32
  • 49KB
  • 下载

oracle PL-SQL 学习笔记1

  • 2009年06月22日 20:46
  • 6KB
  • 下载

PL/SQL笔记--PLSQL应用开发_游标

1、CURSOR综述 l  cursor是用于提取多行数据集 l  游标的使用   2、申明游标 l  申明语法 declare        CURSER ...

PL/SQL学习笔记

  • 2017年11月01日 10:02
  • 2.67MB
  • 下载

PL/SQL学习笔记7

  • 2008年04月21日 15:32
  • 75KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PL\SQL学习笔记(五) 游标
举报原因:
原因补充:

(最多只允许输入30个字)