`
在水伊方
  • 浏览: 111092 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

ORACLE中的游标

阅读更多

当SELECT语句从数据库中返回的记录多于一条时,就可以使用游标(cursor)。游标可以理解为可以一次访问一个的一组记录。SELECT语句将列提前到游标中,然后根据游标取得记录。使用游标时需要以下5个步骤:

1.声明一些变量,用于保存SELECT语句返回的列值

2.声明游标,并指定SELECT语句

3.打开游标

4.从游标获取记录

5.关闭游标

 

下面是一个例子(循环取出dept表中的信息):

--游标
--声明变量
SET SERVEROUTPUT ON;
DECLARE
  v_deptno dept.deptno%TYPE;
  v_dname dept.dname%TYPE;
  v_loc dept.loc%TYPE;
  
  --声明游标
  CURSOR find_dept_inf IS
  SELECT deptno, dname, loc
  FROM dept
  ORDER BY dname;
  
BEGIN
  --打开游标
  OPEN find_dept_inf;
    
  LOOP
       --获取记录
       FETCH find_dept_inf 
       INTO v_deptno, v_dname, v_loc;
         
       EXIT WHEN find_dept_inf%NOTFOUND;
       dbms_output.put_line(
            'v_deptno = ' || v_deptno || 
            ', v_dname = ' || v_dname ||
            ', v_loc = ' || v_loc
       );
  END LOOP;    
    
  --关闭游标
  CLOSE find_dept_inf;
END;
/

 

当使用FOR循环时,可以不显式地打开和关闭游标--FOR循环会自动执行这些操作:

--游标与for循环
SET SERVEROUTPUT ON;
DECLARE
  CURSOR find_dept_inf IS
  SELECT deptno, dname, loc
  FROM dept
  ORDER BY dname;
 
BEGIN
  FOR v_dept IN find_dept_inf LOOP
  dbms_output.put_line(
       'deptno = ' || v_dept.deptno || 
       ', dname = ' || v_dept.dname ||
       ', loc = ' || v_dept.loc
  );
         
  END LOOP;
END;
/

 可以发现利用FOR循环代码简洁了许多

 

分享到:
评论

相关推荐

    Oracle 数据库游标使用大全

    除了SELECT… INTO,还可以在游标中使用INSERT、UPDATE和DELETE等DML语句,这些语句可以与游标结合,对查询结果进行逐行操作。 5. **DML语句的结果** - **SQL%FOUND**:在执行DML语句后,如果至少有一行被影响,...

    快速掌握Oracle数据库游标的使用方法

    使用记录变量可以方便地从游标中提取数据行。当游标选择很多列的时候,那么使用记录变量比为每列声明一个变量要方便得多。记录变量可以使用 TYPE 命令和%ROWTYPE 定义,例如:DECLARE R_emp EMP%ROWTYPE;其中,R_emp...

    oracle 隐式游标,显示游标,游标循环

    ### Oracle中的游标详解 #### 一、引言 在Oracle数据库中,游标是一种非常重要的机制,它允许用户在程序中对查询结果...此外,通过使用循环结构,可以有效地遍历游标中的每一行数据,从而实现复杂的业务逻辑处理。

    oracle数据库游标使用例子

    以下是关于Oracle游标使用的一些关键知识点: 1. **游标的基本概念**: 游标(Cursor)是一种机制,它允许我们遍历和操作由SQL查询返回的结果集。通过游标,我们可以控制数据的读取顺序,一次只处理一行,或者在...

    Oracle数据库游标使用.rar

    Oracle数据库游标是数据库编程中的一个重要概念,尤其在处理大量数据时,它们提供了一种有效且灵活的方法。游标允许程序逐行访问查询结果集,而不是一次性加载所有数据。这在处理复杂的数据操作,如循环处理、条件...

    Oracle的游标学习

    3. 处理游标:通过FETCH语句从游标中提取数据,并将其赋值给变量。 ```sql FETCH cursor_name INTO variable1, variable2, ...; ``` 4. 检查游标状态:使用`%NOTFOUND`、`%ISOPEN`、`%ROWCOUNT`等属性检查游标的...

    oracle笔记游标的使用

    oracle笔记游标的使用,游标的详细代码案例,游标知识点笔记!

    oracle数据库游标实验报告

    oracle数据库游标实验报告!oracle数据库游标实验报告!oracle数据库游标实验报告!

    oracle函数触发器游标等几个小例子

    在`oracle游标.txt`中,你可以学习到如何声明、打开、读取和关闭游标。游标在处理大量数据时非常有用,特别是在需要逐行处理或循环遍历结果集的情况下。例如,如果你需要更新数据库中满足特定条件的所有行,游标将是...

    oracle数据库的游标

    在使用显式游标时,通常通过循环结构来迭代游标中的数据。游标循环有多种实现方式,包括使用loop循环、while循环和for循环。每种循环方式有其特定的场景和优势。例如,for循环会自动打开和关闭游标,并且会自动处理...

    oracle游标的总结oracle游标的总结

    Oracle 游标是 Oracle 数据库中的一种重要概念,用于查询数据库,获取记录集合(结果集)的指针。游标可以看作是一个临时表,你可以对其每一行的数据进行任意的操作。本文将对 Oracle 游标的概念、分类、声明方式、...

    ORACLE 游标使用示例

    在"游标.txt"文件中,可能包含了更多关于Oracle游标的使用实例和技巧,包括游标的声明、动态游标、游标变量、游标表达式以及游标在存储过程和函数中的应用。这些内容可以帮助你更深入地理解和掌握Oracle游标,提高你...

    oracle-游标使用汇总.doc

    然后,通过`FETCH`命令从游标中获取数据: ```sql FETCH cursor_name INTO variable[,variable,...]; ``` 这里的`variable`是与游标查询结果列相匹配的变量,它们的数据类型应与查询结果列的类型一致。例如: ```sql...

    Oracle数据库游标使用大全

    Oracle数据库游标是PL/SQL编程中不可或缺的一部分,它们允许程序逐行处理查询结果,提供了更灵活的数据操作方式。在Oracle数据库中,游标主要分为两种类型:隐式游标和显式游标。 1. **隐式游标**: - 当在PL/SQL...

    oracle解决游标多维度循环查询效率过低方案

    多维度查询时通常需要建立多个游标循环,查询效率无法得到保障,现在通过游标和substr()函数相结合的方式提高查询效率

    Oracle函数游标以及包的定义

    该文件讲解了Oracle数据库中函数游标的创建以及包的定义,对数据库有更深层次的了解

    非常详细的Oracle游标整理

    - 在循环中使用`fetch into`语句取出游标中的数据,`exit when rowList%notfound`用于检测是否还有更多记录。 3. **REF游标**: - REF游标是动态游标的一种,它允许处理动态SQL查询的结果集,即在运行时创建SQL...

    Oracle入门--Oracle游标使用

    Oracle游标是PL/SQL编程中的重要组成部分,主要用于处理单行或多行查询结果。游标允许程序员逐行处理查询结果,而不是一次性加载所有数据。在Oracle中,游标分为显式游标和隐式游标。 1. **隐式游标**:在PL/SQL中...

    ORACLE中的游标.ppt

    ORACLE中的游标.ppt

Global site tag (gtag.js) - Google Analytics