Oracle中如何返回数据集--原创分享

freddy2003 freddy2003 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
Oracle中如何返回数据集
(作者:Fred Zhang 2005-9-20 MSN: zhangfred_188@hotmail.com)
在实际开发中,我们常常需要从数据库中返回数据集,在MS SQL Server中返回数据集是非常容易的事情,只要把Select 语句放在存储过程中就可以了,但在Oracle却不太容易,常常让初学者望而却步。下文就是介绍在Oracle中如何返回数据集。

1. 测试环境:
Oracle 9.2 +ASP.Net2003
Oracle 中HR方案 Password:Hr
2. 第一步:建Oracle包:
CREATE OR REPLACE PACKAGE SELECT_JOB_HISTORY AS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE GetJobHistoryByEmployeeId
(
p_employee_id IN NUMBER,
cur_JobHistory OUT T_CURSOR
);
END SELECT_JOB_HISTORY;
3.第二步:建Oracle包体
CREATE OR REPLACE PACKAGE BODY SELECT_JOB_HISTORY AS
PROCEDURE GetJobHistoryByEmployeeId
(
p_employee_id IN NUMBER,
cur_JobHistory OUT T_CURSOR
)
IS
BEGIN
OPEN cur_JobHistory FOR
SELECT * FROM JOB_HISTORY
WHERE employee_id = p_employee_id;
END GetJobHistoryByEmployeeId;
END SELECT_JOB_HISTORY;
4. 第三步 在ASP.Net中调用,输入员工的ID号101.

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient;

namespace test
{
/// <summary>
/// WebForm8
/// </summary>
public class WebForm8 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;

private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
DataGrid1.DataSource=getDataSet();
DataGrid1.DataBind();
}
}
public DataView getDataSet()
{

//OracleConnection conn = new OracleConnection("Data Source=ora9_192.168.100.161;User Id=cams;Password=cams;");
OracleConnection conn = new OracleConnection("Data Source=ora9_192.168.100.161;User Id=hr;Password=hr;");
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "select_job_history.GetJobHistoryByEmployeeId";
cmd.CommandType = CommandType.StoredProcedure;
DataSet objDataSet=new DataSet();

// add the parameters for the stored procedure including the REF CURSOR
// to retrieve the result set
cmd.Parameters.Add("p_employee_id", OracleType.Number).Value =101;
cmd.Parameters.Add("cur_JobHistory", OracleType.Cursor).Direction =ParameterDirection.Output;


conn.Open();
OracleDataAdapter objDA=new OracleDataAdapter(cmd);
objDA.Fill(objDataSet,"gp");
DataView objdv=new DataView(objDataSet.Tables["gp"]);

conn.Close();
return objdv;

}

#region
override protected void OnInit(EventArgs e)
{

InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}
...全文

相关推荐

Oracle中返回结果集的存储过程分享

Oracle不像SQLServer那样在存储过程中用Select就可以返回结果集,而是通过Out型的参数进行结果集返回的。实际上是利用REF CURSOR 代码如下: –procedure返回记录集: ———————-声明一个Package————– CREATE OR REPLACE PACKAGE pkg_test AS TYPEmyrctypeIS REF CURSOR; PROCEDURE get_r(p_id NUMBER,p_rc OUT myrctype); –Package中声明名为get 的Procedure(只有接口没内容) END pkg_test; —————–声明P

weixin_38674115

Oracle账号分享[项目源码]

文章分享了Oracle的测试账号oracle_test@fexbox.org及密码Java001@@@,用于登录Oracle官网下载Java相关技术资源。作者提到下载jre需要账号,因此注册并分享给有需要的人。文中还提供了jre-7u7-windows-i586.exe的下载链接,但指出链接中包含授权参数,直接拼接地址无法下载,建议使用账号登录后下载。

kk1234

oracle sql优化分享案例

oracle sql案例的分享ppt,具体调优和改写sql的例子

「已注销」

oracle常用函数汇总(分享)

一、运算符算术运算符:+ – * / 可以在select 语句中使用连接运算符:|| select deptno|| dname from dept; 比较运算符:> >= = != &lt; &lt;= like between is null in逻辑运算符:not and or 集合运算符: intersect ,union, union all, minus 要求:对应集合的列数和数据类型相同     查询中不能包含long 列     列的标签是第一个集合的标签     使用order by时,必须使用位置序号,不能使用列名例:集合运算符的使用: 代码如下:intersect ,union, u

weixin_38627603

Hive1.2.2详细安装教程

Hive是Hadoop组态中的数据仓库,本质是将sql语句转换为MapReduce任务,所以Hive只是一个解析引擎,它的数据存储在hdfs上,元数据信息依托mysql数据库。在这里有一个小问题,为什么需要mysql关系数据库,因为hdfs存储的只是数据信息,而建表的时候是需要列名来查询的,因此要用mysql来建立表信息,当然也可以用其他的关系型数据库。在这里依托mysql数据库搭建Hive组件。...

张小沫22
评论 4
收藏 已收藏
分享
返回顶部
freddy2003
基础和管理 17,379 成员 95,111 内容