10.3游标变量 --REF CURSOR

10.3.1游标变量简介

在PL/SQL中,指针是使用REF作为前缀进行定义的,因此游标变量类型就是REF CURSOR;

DECLARE
    TYPE emp_type IS REF CURSOR RETURN emp%ROWTYPE;--定义游标变量类型
    emp_cur emp_type;                              --声明游标变量
    emp_row emp%ROWTYPE;                           --定义游标结果值变量
BEGIN
    OPEN  emp_cur FOR SELECT * FROM emp;            --游标变量与静态游标的一个区别就是游标变量指向一个查询的工作区。静态游标指向的是数据库
    LOOP
        FETCH emp_cur INTO emp_row;
        EXIT WHEN emp_cur%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE('员工名称:'||emp_row.ename);
    END LOOP;

END;

10.3.2   
声明游标变量类型

游标变量是一种引用类型,类似于C语言中的指针,在程序运行时,他可以指向不同的查询区域。它的定义与集合或记录一样,必须通过两个声明步骤来实现一个游标变量的定义。

(1)创建一个游标变量类型

(2)基于该类型创建实际的游标变量

TYPE  cursor_type_naem IS REF CURSOR [RETURN return_type];

REF表示一个指针类型,RETURN指定游标将要返回的类型;

从Oracle9i开始,Oracle提供了一个预定义的弱类型游标类型,SYS_REFCURSOR。

注意:关闭一个还没有打开过的游标变量或已经关闭了的游标变量是非法的,PL/SQL会引发INVALID_CURSOR异常。

DECLARE
    emp_cur SYS_REFCURSOR;
    emp_row emp%ROWTYPE;
    dept_row dept%ROWTYPE;
BEGIN
    OPEN emp_cur FOR SELECT * FROM emp WHERE deptno = 20;
    FETCH emp_cur INTO dept_row;
EXCEPTION
    WHEN ROWTYPE_MISMATCH THEN
        FETCH emp_cur INTO emp_row;
        DBMS_OUTPUT.PUT_LINE('员工名称:'||emp_row.ename||'部门编号:'||emp_row.deptno);
END;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
有趣的猫在Chrome浏览器中追逐光标。你个人的宠物猫。 :smiling_cat_with_heart-eyes:光标猫 - 小猫追逐鼠标光标。 得到一个有趣的镀铬宠物作为一只可爱的猫,将在不同的网站上追逐你的鼠标。 这些有趣的宠物可供您使用: - 虎斑; - 朋克 - 还有很多其他酷:cat::cat::cat:角色。 将光标移动到网站区域,动画猫将赶上光标 与此同时,他们有趣的面孔将根据动作而改变 在赶上光标后,宠物可以安全地容纳它。 如何使用: - 安装此扩展程序; - 它的图标将出现在浏览器的右上角; - 打开任何其他网站(Chrome网上应用店或主页除外); - 单击扩展图标; - 点击它选择任何小猫; - 将光标移动到站点区域; - 凯蒂将开始寻找光标; - 玩得开心! 支持语言:Bahasa Indonesia,Bahasa Melayu,Deutsch,English,English (UK),English (United States),Filipino,Français,Kiswahili,Nederlands,Norsk,Tiếng Việt,Türkçe,català,dansk,eesti,español,español (Latinoamérica),hrvatski,italiano,latviešu,lietuvių,magyar,polski,português (Brasil),português (Portugal),română,slovenský,slovenščina,suomi,svenska,čeština,Ελληνικά,Српски,български,русский,українська,עברית,فارسی‎,मराठी,हिन्दी,বাংলা,ગુજરાતી,தமிழ்,తెలుగు,ಕನ್ನಡ,മലയാളം,ไทย,አማርኛ,‫العربية,中文 (简体),中文 (繁體),日本語,한국어

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值