本文主要讲述的是用C#来调用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只是个声明罢了。我们在这里定义了一个Oracle存储过程返回结集和一个函数,返回字符串。
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类型也需要指定,另外和一般的Oracle存储过程没什么差别。
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();
上述的相关内容就是对C#调用Oracle存储过程的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】
网站题目:C#来调用Oracle存储过程实操
网站地址:http://www.shufengxianlan.com/qtweb/news4/404554.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联