游标

作者: bigpeng个人博客 | 来源:发表于2019-08-19 09:34 被阅读0次

1、什么是游标
游标是SQL的一个内存工作区,用以临时存储从数据库中提取的数据集。可以理解为java中的集合或jdbc中的resultSet。

2、游标的使用

显示游标使用的四个步骤:
1)定义游标
语法:

CURSOR cursor_name[(parameter[, parameter]…)] IS 查询语句;

例:

declare 
 CURSOR test_cursor IS    
         SELECT title,author FROM web_article;

2)打开游标

open 游标名
例:
open test_cursor;

3)提取数据
语法:

FETCH cursor_name INTO {variable_list | record_variable };

4)关闭游标

CLOSE cursor_name;

3、游标的属性

  • %FOUND 布尔型属性,当最近一次读记录时成功返回,则值为TRUE;
  • %NOTFOUND 布尔型属性,与%FOUND相反;
  • %ISOPEN 布尔型属性,当游标已打开时返回 TRUE;
  • %ROWCOUNT 数字型属性,返回已从游标中读取的记录数

常用次来判断游标的结束
实例:

declare 
  --定义变量
  v_name h_user.name%TYPE;
  v_dept h_user.dept%TYPE;
  --定义游标
  cursor user_cursor(dept_no number default 1 ) 
         is select name,dept from H_USER where dept<dept_no;   
begin
  --打开游标 传递参数的值
  open user_cursor(dept_no => 5);
  
  --遍历游标
  loop
    --取游标中的值
    fetch user_cursor into v_name,v_dept;
    --判断循环结束条件
    exit when user_cursor%NOTFOUND;
    
    DBMS_OUTPUT.put_line(v_name||':'||v_dept);
  end loop;
  --关闭游标
  close user_cursor;
    
end;          

4、游标的for循环
游标FOR循环语句,自动执行游标的OPEN、FETCH、CLOSE语句和循环语句的功能;
语法:

FOR 游标中单条记录变量  IN  有标名[参数] 
      LOOP
              -- 游标数据处理代码
       END LOOP;

示例:

declare 
  --定义游标
  cursor user_cursor(dept_no number default 1 ) 
         is select name,dept from H_USER where dept<dept_no;   
begin
  --for循环遍历游标
  for user_rec in user_cursor(5)
    loop
      DBMS_OUTPUT.put_line(user_rec.name||':'||user_rec.dept);  
    end loop;
end;          

相关文章

  • MongoDB之文档游标

    游标 查询操作返回的结果游标 游标的迭代与操作 db.collecton.find() 返回一个文档集合游标,在不...

  • sqlserver 游标

    游标更新删除当前数据 1.声明游标 2.打开游标 3.声明游标提取数据所要存放的变量 4.定位游标到哪一行 5.关...

  • Oracle 存储过程学习笔记

    1、存储过程简单实例 2.游标实现方式 显式游标实现方式(可多值) 隐式游标(可以实现查询多值) 带有参数的游标(...

  • sql server 游标

    定位到结果集中某一行 游标分类 静态游标(Static):在操作游标的时候,数据发生变化,游标中数据不变。 动态游...

  • 实验九 游标操作和自定义函数

    一.实验目的: 掌握游标的声明、游标打开、标数据的提取、游标的关闭和游标的释放 掌握标量值函数的定义与调用 掌握内...

  • sql 游标,函数,触发器

    游标是数据库的一种机制或类型,可以存储结果集 ,迭代和遍历结果集,oracle中游标大致分为显示游标和隐式游标。 ...

  • GraphQL(七):GraphQL分页及原理分析

    基于GraphQl-JAVA 11.0 GraphQL的分页是基于游标的,游标分页的方式可以提升用户体验,关于游标...

  • SQL-游标循环记录

    declare @temp_temp int --创建游标 --Local(本地游标) DECLARE a...

  • Mongodb学习笔记(四)之 游标操作

    游标操作 cursor (1)游标是什么?通俗来说,游标不是查询结果,而是查询的返回资源或接口。(2)通过这个接口...

  • 游标

    显示游标 显示游标属性 1.%ISOPEN:布尔值,游标是否打开2.%FOUND:布尔值,FETCH附近,缓存区中...

网友评论

      本文标题:游标

      本文链接:https://www.haomeiwen.com/subject/hxsgiftx.html