REF CURSOR

DECLARE
TYPE TY_EMP_CUR IS REF CURSOR;
V_Emp_Cur TY_EMP_CUR;
V_Id EMP.ID%TYPE;
BEGIN
OPEN V_Emp_Cur FOR SELECT ID FROM EMP; --REF CURSOR的SELECT语句赋值位置,可以在逻辑模块中再次更改
FETCH V_Emp_Cur INTO V_Id; --FETCH的作用的读取当前指针并移动到下一个指针目标
WHILE V_Emp_Cur%FOUND LOOP
DBMS_OUTPUT.PUT_LINE(V_Id);
FETCH V_Emp_Cur INTO V_Id;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Other exceptions');
CONTINUE;
END;

CURSOR

DECLARE
CURSOR V_Emp_Cur IS SELECT ID FROM EMP; --传统CURSOR的SELECT语句赋值位置,后期不可更改
V_Id EMP.ID%TYPE;
BEGIN
OPEN V_Emp_Cur;
FETCH V_Emp_Cur INTO V_Id; --FETCH的作用的读取当前指针并移动到下一个指针目标
WHILE V_Emp_Cur%FOUND LOOP
DBMS_OUTPUT.PUT_LINE(V_Id);
FETCH V_Emp_Cur INTO V_Id;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Other exceptions');
CONTINUE;
END;

总结:REF CURSOR和传统的CURSOR相比,传统的CURSOR只能在定义模块中给予该CURSOR相应的SELECT语句去完成定义,且不能后期在逻辑模块再次进行改变,用途很局限,除非SELECT语句不会变化;而REF CURSOR更像是定义一种类型,在定义模块中定义完TYPE和此TYPE的VARIABLE,在逻辑模块中去给予SELECT语句,相当于赋值变量,用法灵活,更方便遍历、绑定变量等实际中应用比较多的操作。

REF CURSOR和CURSOR的更多相关文章

  1. cursor:hand & cursor:pointer

    1.cursor:hand & cursor:pointer都是将鼠标设置为手形. 2.cursor:hand存在兼容性问题,firefox并不支持该属性值.但大部分主流浏览器支持cursor ...

  2. Use Cursor

    declare : CURSOR cursor_name IS select_statement ; open : OPEN cursor_name if the query returns no r ...

  3. Oracle Cursor的使用

    When Oracle Database executes a SQL statement, it stores the result set and processing information i ...

  4. Android笔记——关于Cursor类的介绍

    使用过 SQLite数据库的童鞋对 Cursor 应该不陌生,加深自己和大家对Android 中使用 Cursor 的理解. 关于 Cursor 在你理解和使用 Android Cursor 的时候你 ...

  5. cursor.MySQLCursorDict Class

    5.9.6.4 cursor.MySQLCursorDict Class The MySQLCursorDict class inherits from MySQLCursor. This class ...

  6. css cursor 的可选值(鼠标的各种样式)

    crosshair; 十字准心 The cursor render as a crosshair游标表现为十字准线 cursor: pointer; cursor: hand;写两个是为了照顾IE5, ...

  7. 举例详解CSS中的cursor属性

    这篇文章主要举例介绍了CSS中的cursor属性,包括zoom-in/zoom-out和grab/grabbing等常用属性值的使用,需要的朋友可以参考下 一.开篇之言 CSS3的领域范围已经渗透到了 ...

  8. CSS光标cursor

    前面的话 在浏览器中,光标对于提供交互反馈很有用.通过在不同的场景中改变光标,就能赋予其不同的含义 定义 cursor光标 值: [<uri>,]*[auto | default | po ...

  9. MySQL Cursor

    MySQL Cursor Summary: in this tutorial, you will learn how to use MySQL cursor in stored procedures ...

随机推荐

  1. Window下 Qt 编译MySQL驱动(居然用到了动态库格式转换工具)

    一步步在Window下开发Qt 今天开始安装MySQL,看了些关于MySQL安装的博文,方法大致相同,但是遇到的细节问题各有不同,或者没有讲全面,下面来说说个人的安装过程及遇到的问题. 1.首先下载, ...

  2. kafka初探

    http://www.infoq.com/cn/articles/kafka-analysis-part-1

  3. Git库文件的状态

    git库所在的文件夹(即.git所在的文件夹)中的文件的状态: (1)untracked:未跟踪,此文件在文件夹中,但并没有加入git库,不参与版本控制. 通过”git add”,”git commi ...

  4. 编译器DIY——词法分析

    在上一篇文章中已经介绍了读文件的操作,那么这一篇文章中将会细致解释词法分析. 在源文件里解析出的单词流必须识别为保留字,标识符,常量,操作符和界符五大类 1.显然我们须要列举出全部的保留字,而这里与保 ...

  5. Android发展简单介绍

    Android一词的本义指“机器人”,同一时候也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动 ...

  6. Google Maps 学习笔记(一)2014.06.04

    1.<body onload="加载地图的函数" onunload="GUnload()"> 2.new GMap2(container,opts) ...

  7. SQL Server索引进阶:第四级,页和区

    原文地址: Stairway to SQL Server Indexes: Level 4, Pages and Extents 本文是SQL Server索引进阶系列(Stairway to SQL ...

  8. jQeury学习笔记

    jQuery 语法: 核心语法: $(selector).action() 美元符号定义 jQuery 选择符(selector)"查询"和"查找" HTML ...

  9. 延迟N秒执行某个方法

    [self performSelector:<#(nonnull SEL)#> withObject:<#(nullable id)#> afterDelay:<#(NS ...

  10. 小猪猪逆袭成博士之C++基础篇(一)数据精度、强制类型转换、变量命名规则

    小猪猪逆袭成博士之C++基础篇(一) 关键词: 数据精度.强制类型转换.变量命名规则 综述: 1.大多数编程语言通过两种方式来进一步补充其特征:一是赋予程序员自定义数据类型的权利(C++中的类):二是 ...