日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

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

發(fā)布時(shí)間:2023/12/13 C# 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#调用ORACLE存储过程返回结果集及函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ORACLE段:
首先在ORACLE建立PACKAGE和PACKAGE BODY,將在這里面定義函數(shù)和存儲(chǔ)過程返回結(jié)果集。
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;
/
說明:其實(shí)PACKAGE只是個(gè)聲明罷了。我們?cè)谶@里定義了一個(gè)存儲(chǔ)過程返回結(jié)集和一個(gè)函數(shù),返回字符串。

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是具體的說明和使用,將采用什么方式實(shí)現(xiàn)。。

C#段:
在C#中代碼將分為兩部分,一部分是使用函數(shù),另外一部分是使用結(jié)果集。
定義一個(gè)連接,從WEBCONFIG里去取得:
private OracleConnection orcn=new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["scott"]);
C#調(diào)用ORACLE函數(shù):
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是系統(tǒng)自定義的函數(shù)返回變量,特別要注意的是,函數(shù)的參數(shù)的返回類型要指定,另外就是COMMAND類型也需要指定,另外和一般的存儲(chǔ)過程沒什么差別。

C#調(diào)用ORACLE返回結(jié)果集:
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();

轉(zhuǎn)載于:https://www.cnblogs.com/builderman/articles/1224173.html

總結(jié)

以上是生活随笔為你收集整理的C#调用ORACLE存储过程返回结果集及函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。