• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
在Oracle中返回多个结果集的方法
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
在Oracle中返回多个结果集的方法
软件发布 在Oracle中返回多个结果集的方法
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 认证考试 >> Oracle认证 >> Oracle指导 >> 在Oracle中返回多个结果集的方法

在Oracle中返回多个结果集的方法

添加时间: 2008-4-27 20:39:40  作者: Oracle指导  阅读次数:8   来源: http://www.d9soft.com

       

     Oracle 不支持批量查询,因此无法从一个命令返回多个结果集。使用存储过程时,返回多个结果集类似于返回单个结果集;必须使用 REF CURSOR 输出参数。要返回多个结果集,请使用多个 REF CURSOR 输出参数。
    以下是返回两个结果集(全部 EMPLOYEES 和 JOBS 记录)的包规范:
    CREATE OR new PACKAGE SELECT_EMPLOYEES_JOBS AS
    TYPE T_CURSOR IS REF CURSOR;
    PROCEDURE GetEmployeesAndJobs (
    cur_Employees OUT T_CURSOR,
    cur_Jobs OUT T_CURSOR
    );
    END SELECT_EMPLOYEES_JOBS;

    包正文如下所示:

    CREATE OR new PACKAGE BODY SELECT_EMPLOYEES_JOBS AS
    PROCEDURE GetEmployeesAndJobs
    (
    cur_Employees OUT T_CURSOR,
    cur_Jobs OUT T_CURSOR
    )
    IS
    BEGIN
    -- return all EMPLOYEES records
    OPEN cur_Employees FOR
    SELECT * FROM Employees;

    return all JOBS records
    OPEN cur_Jobs FOR
    SELECT * FROM Jobs;
    END GetEmployeesAndJobs;
    END SELECT_EMPLOYEES_JOBS;

 

    以下代码显示了如何使用从上述包中返回的两个结果集来填充 DataSet 中的两个相关表:

    create the connection
    OracleConnection conn = new OracleConnection("Data Source=oracledb;
    User Id=UserID;Password=Password;");

    define the command for the stored procedure
    OracleCommand cmd = new OracleCommand();
    cmd.Connection = conn;
    cmd.CommandText = "SELECT_EMPLOYEES_JOBS.GetEmployeesAndJobs";

    add the parameters including the two REF CURSOR types to retrieve
    the two result sets
    cmd.Parameters.Add("cur_Employees", OracleType.Cursor).Direction =
    ParameterDirection.Output;
    cmd.Parameters.Add("cur_Jobs", OracleType.Cursor).Direction =
    ParameterDirection.Output;
    cmd.CommandType = CommandType.StoredProcedure;

    create the DataAdapter and map tables
    OracleDataAdapter da = new OracleDataAdapter(cmd);
    da.TableMappings.Add("Table", "EMPLOYEES");
    da.TableMappings.Add("Table1", "JOBS");

    create and fill the DataSet
    DataSet ds = new DataSet();
    da.Fill(ds);

    create a relation
    ds.Relations.Add("EMPLOYEES_JOBS_RELATION",
    ds.Tables["JOBS"].Columns["JOB_ID"],
    ds.Tables["EMPLOYEES"].Columns["JOB_ID"]);

    output the second employee (zero-based array) and job title
    based on the relation
    Console.WriteLine("Employee ID: " +
    ds.Tables["EMPLOYEES"].Rows[1]["EMPLOYEE_ID"] +
    "; Job Title: " +
    ds.Tables["EMPLOYEES"].Rows[1].GetParentRow(
    "EMPLOYEES_JOBS_RELATION")["JOB_TITLE"]);

    控制台输出显示了第二个员工的职务:

    Employee ID: 101; Job Title: Administration Vice President

    来自于:http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.

mspx
    遇到的错误:在开发时遇到了未处理的句柄错误,其原因是没有为所有的输出参数返回值。

 

上下文章:

 

上一篇文章: Oracle数据库性能保护(下) 下一篇文章: OracleDBA认证大全三级认证梯次进度

相关文章:

  • vista隐蔽的注册表垃圾清理方法
  • 在局域网中配置Vlan的基本方法
  • 在ORACLE的存储过程中如何做简单的动态查询
  • Oracle下调数据库许可价格以适应多芯CPU
  • Oracle全球客户支持副总裁汤姆·舒尔滋演讲

相关软件:

  • 学习方法宝典 2006 新春贺年版
  • 东方法律宝典 2005 Ⅲ
  • Ecora Enterprise Auditor for Oracle-破解补丁 Cracked v3_6_5185
  • OptionsOracle V1.3.1
  • 104种木马清理方法 CHM格式电子书
  • 网页特效库2006[198特效使用方法]电子书

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

Oracle认证分类导航

  • Oracle动态
  • Oracle指导
  • Oracle题库

本类经典文章推荐

  • Oracle中关于逻辑备份与恢复
  • Oracle开发人员JAVA存储过程
  • 为数据库的表自动生成行号
  • Oracle中的OOP概念
  • 用java从oracle取数
  • 冷备份移植到另一台Solaris机器上
  • 如何将excel数据导入oracle中
  • Oracle10.2g安装记录
  • 数据库监控工具ForOraclev1.2
  • oracle双机群集系统

Oracle指导阅读排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • Oracle企业管理器(OEM 2.1)使用...
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • 如何取出某一用户的密码 再原样改...
  • 实例:Oracle导出EXCEL文件
  • 案例学习Oracle错误:ORA-00604
  • 案例学习Oracle错误:ORA-00060

Oracle认证阅读总排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • 在ORACLE的存储过程中如何做简单的...
  • Oracle企业管理器(OEM 2.1)使用...
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • AIX下自动启动Oracle数据库与监听...
  • 如何取出某一用户的密码 再原样改...
  • 实例:Oracle导出EXCEL文件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有