Oracle游标

游标是用于临时存储一个查询返回的多行数据(结果集),通过遍历游标,可以逐行访问处理改结果集的数据。

1、使用方式

  声明——>打开——>读取——>关闭

2、语法

  游标声明

  CURSOR 游标名[(参数列表)] IS 查询语句;

  游标打开:

  OPEN 游标名;

  游标读取:

  FETCH 游标名 INTO 变量列表;

  游标关闭:

  CLOSE 游标名;

3、游标属性

游标的属性   返回值类型   说明  
%ROWCOUNT   整型 获得FETCH语句返回的数据行数
%FOUND   布尔型 最近的FETCH语句返回的一行数据则为证,否则为假
%NOTFOUND     布尔型   与%FOUND属性返回值相反
%ISOPEN   布尔型   游标已经打开时值为真,否则为假

  无参数游标

分享图片

declare
    --声明游标
    cursor c_emp is select ename,sal from emp;
    --声明变量
    v_ename emp.ename%type;
    v_sal emp.sal%type;
begin
    --打开游标
    open c_emp;
    --遍历循环
    loop
        --获取游标中的数据
        fetch c_emp into v_ename,v_sal;
        
        exit when c_emp%notfound;
        dbms_output.put_line(姓名:||v_name||工资:||v_sal);
    end loop;
    --关闭游标
    close c_emp;
    
end;
View Code

  有参数游标

分享图片

declare
    --声明游标
    cursor c_emp(v_deptno emp.deptno%type) is select ename,sal from emp where deptno=v_deptno;
    --声明变量
    v_ename emp.ename%type;
    v_sal emp.sal%type;
begin
    --打开游标
    open c_emp(10);
    --遍历循环
    loop
        --获取游标中的数据
        fetch c_emp into v_ename,v_sal;
        
        exit when c_emp%notfound;
        dbms_output.put_line(姓名:||v_name||工资:||v_sal);
    end loop;
    --关闭游标
    close c_emp;
    
end;
View Code

相关文章

文章浏览阅读773次,点赞6次,收藏9次。【代码】c# json字符...
文章浏览阅读8.7k次,点赞2次,收藏17次。此现象一般定位到远...
文章浏览阅读2.8k次。mysql脚本转化为oracle脚本_mysql建表语...
文章浏览阅读2.2k次。cx_Oracle报错:cx_Oracle DatabaseErr...
文章浏览阅读1.1k次,点赞38次,收藏35次。本文深入探讨了Or...
文章浏览阅读1.5k次。默认自动收集统计信息的时间为晚上10点...