知识大全 Oracle游标使用总结

Posted 变量

篇首语:学向勤中得,萤窗万卷书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle游标使用总结相关的知识,希望对你有一定的参考价值。

Oracle游标使用总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Oracle游标分为显示游标和隐式游标

  显示游标(Explicit Cursor):在PL/SQL程序中定义的 用于查询的游标称作显示游标

  隐式游标(Implicit Cursor):是指非PL/SQL程序中定义的 而且是在PL/SQL中使用UPDATE/DELETE语句时 Oracle系统自动分配的游标

  一 显示游标

   使用步骤

  ( )定义 ( )打开 ( )使用 ( )关闭

   使用演示

  首先创建测试用表STUDENT 脚本如下

  ( ) 使用WHILE循环处理游标

  create or replace PROCEDURE PROC_STU AS

  BEGIN

   显示游标使用 使用while循环

  declare

   定义游标 名称为cur_stu

  cursor cur_stu is

  select stuno stuname from student order by stuno;

   定义变量 存放游标取出的数据

  v_stuno varchar( );

  v_stuname varchar( );

  begin

   打开游标cur_stu

  open cur_stu;

   将游标的当前行取出存放到变量中

  fetch cur_stu into v_stuno v_stuname;

  while cur_stu%found 游标所指还有数据行 则继续循环

  loop

   打印结果

  dbms_output PUT_LINE(v_stuno|| > ||v_stuname);

   继续将游标所指的当前行取出放到变量中

  fetch cur_stu into v_stuno v_stuname;

  end loop;

  close cur_stu; 关闭游标

  end;

  END PROC_STU ;

  ( ) 使用IF ELSE代替WHILE循环处理游标

  create or replace PROCEDURE PROC_STU AS

  BEGIN

   显示游标使用 使用if判断

  declare

   定义游标 名称为cur_stu

  cursor cur_stu is

  select stuno stuname from student order by stuno;

   定义变量 存放游标取出的数据

  v_stuno varchar( );

  v_stuname varchar( );

  begin

   打开游标cur_stu

  open cur_stu;

   将游标的当前行取出存放到变量中

  fetch cur_stu into v_stuno v_stuname;

  loop

  if cur_stu%found then 如果游标cur_stu所指还有数据行

   打印结果

  dbms_output PUT_LINE(v_stuno|| > ||v_stuname);

   继续将游标所指的当前行取出放到变量中

  fetch cur_stu into v_stuno v_stuname;

  else

  exit;

  end if;

  end loop;

  close cur_stu; 关闭游标

  end;

  END PROC_STU ;

  ( ) 使用FOR循环处理游标

  create or replace PROCEDURE PROC_STU AS

  BEGIN

   显示游标使用 使用for循环

  declare

   定义游标 名称为cur_stu

  cursor cur_stu is

  select stuno stuname from student order by stuno;

  begin

  for stu in cur_stu

  loop

  dbms_output PUT_LINE(stu stuno|| > ||stu stuname);

   循环做隐含检查 %notfound

  end loop;

   自动关闭游标

  end;

  END PROC_STU ;

  ( ) 常用的使用EXIT WHEN处理游标

  create or replace

  PROCEDURE PROC_STU _ AS

  BEGIN

   显示游标使用 使用exit when循环

  declare

   定义游标 名称为cur_stu

  cursor cur_stu is

  select stuno stuname from student order by stuno;

   定义变量 存放游标取出的数据

  v_stuno varchar( );

  v_stuname varchar( );

  begin

   打开游标cur_stu

  open cur_stu;

  loop

   将游标的当前行取出存放到变量中

  fetch cur_stu into v_stuno v_stuname;

  exit when cur_stu%notfound; 游标所指还有数据行 则继续循环

   打印结果

  dbms_output PUT_LINE(v_stuno|| > ||v_stuname);

  end loop;

  close cur_stu; 关闭游标

  end;

  END PROC_STU _ ;

  二 隐式游标

   使用演示

  create or replace PROCEDURE PROC_STU AS

  BEGIN

   隐式游标使用

  update student set stuname= 张燕广 where stuno= ;

   如果更新没有匹配则插入一条新记录

  if SQL%NOTFOUND then

  insert into student(STUNO STUNAME AGE GENDER)

  values( 张燕广 男 );

  end if;

  END PROC_STU ;

   说明

  所有的SQL语句在上下文区内部都是可执行的 因为都有一个游标指向上下文区 此游标就是

  SQL游标 与现实游标不同的是 SQL游标在PL/SQL中不需要打开和关闭 而是在执行UPDATE

  DELETE是自动打开和关闭

  上面例子中就是通过SQL%NOTFOUND游标属性判断UPDATE语句的执行结果决定是否需要插入新记录 CREATE TABLE STUDENT (

   STUNAME VARCHAR ( BYTE)

   STUNO VARCHAR ( BYTE)

   AGE NUMBER

   GENDER VARCHAR ( CHAR)

cha138/Article/program/Oracle/201311/17531

相关参考

知识大全 oracle中的游标使用静态游标

  游标是构建在PL/SQL中用来查询数据获取记录集的指针它让开发者一次访问结果集中一行记录  在oracle中提供了两种游标静态游标ref游标  静态游标静态游标是在编译的时候就被确定然后把结果集复

知识大全 oracle游标

  为了处理SQL语句Oracle将在内存中分配一个区域这就是上下文区这个区包含了已经处理完的行数指向被分析语句的指针整个区是查询语句返回的数据行集游标就是指向上下文区句柄或指针  两种游标  一显示

知识大全 Oracle游标使用大全二

Oracle学习手册:Oracle游标使用大全二  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 oraclePL/SQL之隐式游标和ref游标总结

oraclePL/SQL之隐式游标和ref游标总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Oracle数据库游标的类型

Oracle数据库游标的类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  游标是SQL的一个内

知识大全 Oracle数据库游标使用大全

Oracle数据库游标使用大全  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SQL是用于访问O

知识大全 快速掌握Oracle数据库游标的使用方法

快速掌握Oracle数据库游标的使用方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  显式游标

知识大全 Oracle游标提取相关的数据的语法介绍

Oracle游标提取相关的数据的语法介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文主要

知识大全 Oracle游标的删除与更新实际操作步骤

Oracle游标的删除与更新实际操作步骤  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以下的文

知识大全 Oracle查看和修改其最大的游标数

Oracle查看和修改其最大的游标数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以下的文章主