http://blog.sina.com.cn/s/blog_7540bf5f0100qalz.html

sys_refcursor 和 cursor 优缺点比较

优点比较

优点一:sys_refcursor,可以在存储过程中作为参数返回一个table格式的结构集(我把他认为是table类型,容易理解,其实是一个游标集), cursor 只能用在存储过程,函数,包等的实现体中,不能做参数使用。

优点二:sys_refcursor 这东西可以使用在包中做参数,进行数据库面向对象开放。哈哈。我喜欢。cursor 就不能。

缺点比较:

缺点:sys_refcursor 不能用open,close ,fetch 进行操作。不好学,难理解。

cursor  可以用 open,close ,fetch  操作,容易学,易懂

其他就目前不知道,至于游标的的基础概念,去google,百度一大堆的。这里就不累赘了。看例子:

建立一个存储过程

create or replace procedure up_test(o out sys_refcursor) is
begin
   open o for select * from lq_test;
end;

返回的类型是sys_refcursor;

建立第二个存储过程

create or replace procedure up_getData(aMsg out varchar2) is
  type p_table_type is table of lq_test%rowtype;
  p_table p_table_type;
  v sys_refcursor;
begin
     up_test(v);
     fetch v bulk collect into p_table;
     for i in 1..p_table.count loop
        dbms_output.put_line('字段1:'||p_table(i).v1 || '   字段2:' || p_table(i).v2);
     end loop;
end;

这里要注意fetch 带参数的用法,bulk collect ,这是第集合的操作,必须先定义一个结合类。见上面的例子,还不懂就google了。用法就简单,没啥好介绍的。

取集合的值应该这样p_table(i).v1,其中i标识几行,带上字段,即可了。呵呵,容易理解。

oracle游标应用 sys_refcursor 和 cursor比较相关推荐

  1. Oracle 游标(cursor) 说明

    一.  Cursor说明 Oracle里的cursor分为两种:一种是shared cursor,一种是session cursor. 1.1 Shared cursor 说明 sharedcurso ...

  2. oracle 记录给游标,Oracle游标 CURSOR实例详解

    一.游标概述: 游标(cursor)是数据库系统在内存中开设的一个数据缓冲区,存放SQL语句的执行结果. 每个游标都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给变量做进一步处理. 作用 ...

  3. oracle cusor游标,oracle 游标cursor

    游标 声明    不占内存 打开    申请内存    多行多列 获取    每次取一行, 关闭 隐式游标的属性: SQL%ROWCOUNT    成功操作的行的数量 SQL%FOUND        ...

  4. oracle游标等待,Oracle Mutex 等待事件之: cursor mutex X

    Oracle Mutex 等待事件之: cursor mutex X Cursor Mutex X 是当会话对某个 Cursor 请求排他模式锁,但是该Cursor 上已经有 S 或 X 模式的锁定, ...

  5. oracle游标循环定义变量赋值,PL/SQL  循环 数组 游标的使用

    1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out type) as --声明变量(变量名 变量类型 ...

  6. oracle游标声明中使用变量赋值,Oracle游标使用方法(游标里使用变量绑定)

    来源:http://www.jzxue.com/shujuku/oracle/200910/01-2839.html 游标(CURSOR)也叫光标,在关系数据库中经常使用,在PL/SQL程序中可以用C ...

  7. oracle游标错误,ORACLE游标与错误处理

    ORACLE游标与异常处理 过程示例 create or replace procedure PROC_TASK_QUERY is g_name task_company_stock_list.g_n ...

  8. oracle简版如何打开,如何打开和关闭Oracle游标

    如何打开和关闭Oracle游标 以Oracle显示游标为主,本文讲述了如何打开Oracle游标,以及相关的实际操作,下面和小编一起来看看吧! 打开Oracle游标 使用游标中的值之前应该首先dewen ...

  9. oracle游标理解,oracle游标的使用方法

    oracle游标的使用方法: ①.定义游标 cursor ②.打开游标 open ③.提取游标 fetch ④.关闭游标 close declare --类型定义 cursor c_job is se ...

最新文章

  1. 点云网络的论文理解(一)-点云网络的提出 PointNet : Deep Learning on Point Sets for 3D Classification and Segmentation
  2. 红米路由器ac2100怎样设置ipv6_红米(Redmi)路由器AC2100手机怎么设置?
  3. unity 中让Text的文字动态刷新形式
  4. SpringBoot 集成 clickhouse + mybatis-plus 配置及使用问题说明(含建表语句、demo源码、测试说明)
  5. cmake 指定编译器_我们需要懂得CMake文件
  6. View的事件分发机制简述
  7. 2021奥斯汀 Pwn2Own黑客大赛落幕,Master of Pwn 诞生
  8. 俊杰隐藏文件程序源码分享 C#
  9. python图片转excel,Python代码,将图片转为了Excel
  10. matlab 图例legend中实现换行
  11. 一台电脑群控上百台手机是什么样?
  12. 老司机教你下载tumblr上视频和图片的正确姿势
  13. ProFTPD部署教程
  14. Python3.7对文本批量进行词频分析
  15. python爬取豆瓣电影top250_用Python爬取豆瓣电影TOP250分析
  16. android 支付宝sdk接入详解
  17. Django实战项目--爱鲜蜂day1
  18. mysql查询工资最高三人6_MySQL T6 数据库操作——查询(三)高级查询
  19. ppt测试什么软件,PDF转PPT软件哪个好测试
  20. 天哪又要搬家啦qvq

热门文章

  1. iOS之从N个数里面取M个数的组合算法
  2. 2018年第九届蓝桥杯 - 省赛 - C/C++大学A组 - F.航班时间
  3. 有没有一种让人很爽的学习方法?
  4. 2010年第一届蓝桥杯省赛 —— 第一题
  5. 新手入门机器学习十大算法
  6. 【Linux系统编程】Linux文件操作
  7. 【Linux】一步一步学Linux——cut命令(44)
  8. python写快排_python 实现快速排序
  9. 手把手教你在windows10下进行openFoam调试
  10. 记sentinel里防止多并发下读取脏数据的操作