Bootstrap

Oracle 游标

目录

一、游标分类

二、举例演示

2.1 静态游标

2.1.1 隐式游标

2.1.2 显示游标

 2.2 动态游标

2.2.1 自定义类型 ref cursor

 2.2.2 系统类型 sys_refcursor


一、游标分类

二、举例演示

2.1 静态游标

2.1.1 隐式游标

1. 自动创建
   (1) DML
   (2) select into
   
2. 自动管理
   (1) 无需人为干预(自动声明、打开、关闭)
   (2) 默认游标名:'SQL'

3. 当Oracle执行 SELECT INTOINSERTUPDATEDELETE SQL语句时,它会自动的创建一个隐式游标,Oracle内部管理整个隐式游标的整个执行周期,并且只暴漏出游标的信息和状态,例如:SQL%ROWCOUNT、 SQL%ISOPEN、 SQL%FOUND 和SQL%NOTFOUND。当查询返回零行或多行时,隐式游标不够优雅,这会分别导致NO_DATA_FOUNDTOO_MANY_ROWS异常。

declare
  v_count number;
begin
  insert into stu_info (id, name, sex) values (3, '瑶瑶', '女');
  if sql%found then
    dbms_output.put_line('插入成功!');
  end if;

  update stu_info t set t.name = '悠悠' where t.id = 3;
  if sql%found then
    dbms_output.put_line('
;