C#调用ORACLE存储过程返回结果集及函数

原创 2005年05月26日 13:43:00
 

ORACLE段:
首先在ORACLE建立PACKAGE和PACKAGE BODY,将在这里面定义函数和存储过程返回结果集。
1:建立PACKAGE:
CREATE OR REPLACE package SCOTT.pk_wt
is
type mytype is ref cursor;
procedure p_wt(mycs out mytype);
function f_get(str in varchar2)
return varchar2;
end;
/
说明:其实PACKAGE只是个声明罢了。我们在这里定义了一个存储过程返回结集和一个函数,返回字符串。

2:建立PACKAGE BODY:
CREATE OR REPLACE package BODY SCOTT.pk_wt
is
procedure p_wt(mycs out mytype)
is
begin
open mycs for select * from test;
end p_wt;

function f_get(str varchar2)
return varchar2
is
str_temp varchar2(100) := 'good luck!';
begin
str_temp := str_temp || str;
return str_temp;
end f_get;

end pk_wt;
/
说明:这里建立PACKAGE BODY是具体的说明和使用,将采用什么方式实现。。

C#段:
在C#中代码将分为两部分,一部分是使用函数,另外一部分是使用结果集。
定义一个连接,从WEBCONFIG里去取得:
private OracleConnection orcn=new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["scott"]);
C#调用ORACLE函数:
OracleCommand cmd=new OracleCommand("pk_wt.f_get",orcn);
   cmd.CommandType=CommandType.StoredProcedure;
   OracleParameter p1=new OracleParameter("str",OracleType.VarChar,10);
   p1.Direction=System.Data.ParameterDirection.Input;
   p1.Value=this.TextBox1.Text;
   OracleParameter p2=new OracleParameter("result",OracleType.VarChar,100);
   p2.Direction=System.Data.ParameterDirection.ReturnValue;
   cmd.Parameters.Add(p1);
   cmd.Parameters.Add(p2);
   orcn.Open();
   cmd.ExecuteNonQuery();
   orcn.Close();
   this.Button_function.Text=p2.Value.ToString();
其中RESULT是系统自定义的函数返回变量,特别要注意的是,函数的参数的返回类型要指定,另外就是COMMAND类型也需要指定,另外和一般的存储过程没什么差别。

C#调用ORACLE返回结果集:
OracleCommand cmd=new OracleCommand("pk_wt.p_wt",orcn);
   cmd.CommandType=CommandType.StoredProcedure;
   OracleParameter p1=new OracleParameter("mycs",OracleType.Cursor);
   p1.Direction=System.Data.ParameterDirection.Output;
   cmd.Parameters.Add(p1);
   OracleDataAdapter da=new OracleDataAdapter(cmd);
   DataSet ds=new DataSet();
   da.Fill(ds,"test");
   this.DataGrid1.DataSource=ds;
   this.DataGrid1.DataBind();
这里没什么可说的类。。只是定义的数据类型是游标,类型是OUTPUT,另外没什么了。。

C#调用Oracle存储过程并返回结果集

1.创建一个存储过程:createorreplaceprocedure GET_PERSON(    RC1 outsys_refcursor,     RC2 outsys_refcursor)is...
  • dragonforfly
  • dragonforfly
  • 2010年06月26日 19:13
  • 1287

C# 读取在存储过程多结果集

C# 读取在存储过程多结果集
  • roy_88
  • roy_88
  • 2015年11月08日 16:47
  • 2467

关于oracle调用存储过程返回结果集

这两天因为公司要求,去学习了下以前一直模模糊糊的存储过程,记录下关于返回结果集的问题。 要返回结果集,首先你必须有个游标,它是记录你的查询集的。而定义一个游标有好多方法: 1,你可以在包中定义。然...
  • wjs7740
  • wjs7740
  • 2014年01月17日 10:38
  • 1889

c#使用oracle存储过程获取结果集实例

存储过程:create or replace PACKAGE FIRSTPAGE AS  /* TODO enter package declarations (types, exceptions, ...
  • wyljz
  • wyljz
  • 2008年05月04日 10:14
  • 1071

Mybatis 调用oracle存储过程返回结果集

1.这里我是直接接http://blog.csdn.net/shen525758203/article/details/32331229
  • SHEN525758203
  • SHEN525758203
  • 2014年06月20日 15:51
  • 3155

oracle存储过程学习(二)-调用存储过程和返回结果集

1.定义包:oracle返回的结果集需要
  • hekang1011
  • hekang1011
  • 2014年04月04日 15:16
  • 1042

C#调用ORACLE存储过程返回结果集及函数

 ORACLE段:首先在ORACLE建立PACKAGE和PACKAGE BODY,将在这里面定义函数和存储过程返回结果集。1:建立PACKAGE:CREATE OR REPLACE package S...
  • JustLovePro
  • JustLovePro
  • 2007年12月22日 10:56
  • 629

ado.net oledb 调用oracle存储过程返回结果集

数据库脚本:   CREATE TABLE DEPT   (DEPTNO NUMBER(2,0) NOT NULL,    DNAME VARCHAR2(14) NULL,    LOC VARCHA...
  • hurtmanzc
  • hurtmanzc
  • 2007年07月31日 12:50
  • 2263

C#获取一个即返回结果集,又返回值的存储过程

C#获取一个即返回结果集,又返回值的存储过程
  • vaecnfeilong
  • vaecnfeilong
  • 2013年07月11日 06:34
  • 3166

c#调用oracle存储过程返回结果集及函数

 ORACLE段:首先在ORACLE建立PACKAGE和PACKAGE BODY,将在这里面定义函数和存储过程返回结果集。1:建立PACKAGE:CREATE OR REPLACE package S...
  • lhypang2006
  • lhypang2006
  • 2007年10月03日 16:47
  • 475
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#调用ORACLE存储过程返回结果集及函数
举报原因:
原因补充:

(最多只允许输入30个字)