博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
REF CURSOR和CURSOR
阅读量:6959 次
发布时间:2019-06-27

本文共 1299 字,大约阅读时间需要 4 分钟。

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和此TYPEVARIABLE,在逻辑模块中去给予SELECT语句,相当于赋值变量,用法灵活,更方便遍历、绑定变量等实际中应用比较多的操作。

转载于:https://www.cnblogs.com/JeromeZ/p/5337736.html

你可能感兴趣的文章
NetBeans的(默认)快捷键
查看>>
年薪1美金还打N份工,我的收入终于超过马云了
查看>>
中国实体新气象:失之电商,收之“+互联网”
查看>>
W3C 宣布:WebAuthn 成为正式 Web 标准
查看>>
智能机器人登陆eSmart!或制造玩具市场新“痛点”
查看>>
调查显示,大多数 Java 开发人员不希望学习新语言
查看>>
想练球却没人怎么办?找Trainerbot乒乓球机器人!
查看>>
融入CMMI管理思想的计算机化系统验证
查看>>
eclipse导入第三方jar包进入web项目的方法
查看>>
发展至今的机器学习到底对我们的就业和社会产生了哪些影响?
查看>>
2017四川电商年度盛典,千机网论道企业变革
查看>>
Ubuntu 16.04安装QQ(不一定成功)
查看>>
四种方法教你破解Linux(CentOS7.4)系统的root密码
查看>>
阿里云郑晓:浅谈GPU虚拟化技术(第一章)
查看>>
用数据分析赢得卓越业务
查看>>
java直接执行jar包
查看>>
Java中的正则表达式
查看>>
Database Visualization using Metabase Part 1 - Install Metabase on Ubuntu 16.04
查看>>
区块链应用 | 2018年,区块链将有这五大新发展
查看>>
【深度荐读】人脑产生意识,可能是因为量子纠缠
查看>>