• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Oracle存储过程返回游标实例详解

Oracle存储过程返回游标实例详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了oracle存储过程,游标等相关知识,希望本文的分享对您有所帮助

Oracle存储过程返回游标有两种实现方法一种是声明系统游标,一种是声明自定义游标,本文将详细介绍,需要了解的朋友可以参考下

有俩种方法:
一种是声明系统游标,一种是声明自定义游标,然后后面操作一样,参数类型为
in out 或out
(1)声明个人系统游标.(推荐)
代码如下:
create or replace p_temp_procedure
(
cur_arg out sys_refcursor; --方法1
)
begin
open cur_arg for select * from tablename;
end

调用
代码如下:
declare
cur_calling sys_refcursor;
begin
p_temp_procedure(cur_calling); --这样这个游标就有值了
for rec_next in cur_calling loop
....
end loop;
end;

(2)在包头中申明一个游表类型,然后调用者申明一个这个类型的游标变量,传给返回游标的存储过程 ,存储过程out这个结果集,这种方法很麻烦.游标类型不能像索引表一样使用create or replace type方法来创建,所以只能在包中申明,并且需要使用/来执行,后面的存储过程才认这个游标类型.(不推荐,但是建议要知道并且要会这种方式,毕竟它有它存在的道理)
代码如下:
--定义全局变量
create or replace package pkg_package
as
type type_cursor is ref cursor;
type type_record is record
(
test01 varchar2(32),
test02 varchar2(32),
test03 varchar2(32)
);
end;

--创建返回游标的存储过程
代码如下:
create or replace procedure p_temp_procedure
(
cur_out_arg out pkg_package.type_cursor
)
is
begin
open cur_out_arg for select * from test;
end;

--调用
代码如下:
declare
cur_out_arg pkg_package.type_cursor;
rec_arg pkg_package.type_record;
begin
p_temp_procedure(cur_out_arg);
fetch cur_out_arg into rec_arg;
dbms_output.put_line(rec_arg.test01);
dbms_output.put_line(rec_arg.test02);
dbms_output.put_line(rec_arg.test03);
end;
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 深入mysql创建自定义函数与存储过程的详解
  • Oracle存储过程返回游标实例详解

相关文章

  • 2018-12-05SQL语函数定义与用法汇总
  • 2018-12-05SQLServer APPLY表运算符使用介绍
  • 2018-12-05Mysql索引和优化
  • 2018-12-05什么是mysql子查询?如何利用子查询进行过滤?
  • 2017-05-11mysql外键(Foreign Key)介绍和创建外键的方法
  • 2018-12-05MySQL表名映射方案及扩展应用
  • 2017-05-11MySQL 性能优化的最佳20多条经验分享
  • 2018-12-05PL/SQL编程经验小结开发者网络Oracle
  • 2018-12-05利用ssh tunnel链接mysql服务器的方法分享
  • 2018-12-05.NET Framework SQL Server 数据提供程序连接池

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 由于文件权限问题导致SQL Server 2008 无法正常启动解决
    • SQL SELECT 语句的表连接
    • 用MyEclipse配置DataBase Explorer(图示)
    • mysql 查
    • SQL Server2005下的安全操作技巧分享
    • mysql 搜寻附近N公里内数据的实例
    • 怎么才能限制SQL Server只能让指定的机器连接
    • fetch()怎么使用?pdo中fetch()用法实例总结
    • 中文Access2000速成教程--1.5 使用已有的数据自动建新表
    • MySql 备忘录

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有