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();

转载于:https://www.cnblogs.com/builderman/articles/1224173.html

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

  1. Java(CallableStatement)调用Oracle存储过程返回结果集(ResultSet)

     一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS BEGIN ...

  2. Java 调用 Oracle 存储过程返回结果集

    1. 建立 ref cursor 类型和过程 Sql代码 CREATE OR REPLACE PACKAGE types AS TYPE ref_cursor IS REF CURSOR; END; ...

  3. oracle 存储过程返回,Oracle 存储过程返回结果集 (转)

    Oracle 存储过程返回结果集 (转)[@more@] 1.返回数组 (作者:/Message_Board/Send.?sendto=enhydraboy" target=_blank&g ...

  4. 存储过程返回结果集_PostgreSQL函数返回结果集

    有时我们需要定义返回结果集的函数,本文演示如何编码. 遂古之初,谁传道之?上下未形,何由考之?<天问> 1.函数定义 C语言定义部分 PG_FUNCTION_INFO_V1(quanzl_ ...

  5. VB调用ORACLE存储过程返回多记录集

    一直没有写原创的习惯,每次都是从别的贴子拷贝过来.实在是不好意思.最近想把自己做的一个项目中所解决的问题和大家共享一下.希望对遇见这种情况的朋友有所帮助.       程序中要用到VB调用ORACLE ...

  6. c# oracle存储过程返回结果集,一个简单的实例给大家分享C#中调用oracle的存储过程...

    Oracle方面 1.创建Oracle过程存储 create or replace procedure proce_test(paramin in varchar2,paramout out varc ...

  7. vb.net调用oracle存储过程,今天搞好了VB.NET调用Oracle存储过程返回游标的问题

    代码: Public Function GetData(ByVal procDate As String) As ArrayListTry Dim conn As New Oracle.DataAcc ...

  8. python 调用mysql存储过程返回结果集

    存储过程: delimiter | create procedure get_product_info(in imid int(10),int iuser varchar(20)) begin sel ...

  9. java调用ORACLE 存储过程返回值22

    存储过程代码如下:     create   or   replace   package   mysp   is         type   refcursor   is   ref   curs ...

最新文章

  1. 如何实现更换Jupyter Notebook内核Python版本
  2. 编译detours注意
  3. ZooKeeper概述与原理
  4. 跨浏览器Ajax调用封装
  5. 计算机专业顶尖会议论文,校友胡一公获计算机系统领域顶级会议ASPLOS 2019最佳论文奖...
  6. 在lcd屏幕上窗口显示一个bitmap_SmartDrop——LED/LCD大屏内容投屏管理软件
  7. mysql-安装教程
  8. 1 shell备份数据库MYSQL案例
  9. pytorch 基于sqs2sqs的中文聊天机器人
  10. Spring Security——基于表单登录认证原理及实现
  11. MySQL集群和主从复制分别适合在什么场景下使用
  12. java中的VO、PO、BO、DAO、POJO
  13. FTP+MySQL虚拟用户
  14. Python--随机森林模型
  15. 小趣味:js编写斗地主规则(完整代码)
  16. Python批量 png转ico
  17. tw8836flash制作
  18. 教你Word一键自动生成目录步骤
  19. opencv-图像处理1 图像基本操作
  20. java如何快速标记条_【JAVA】如何利用TODO任务标签高效管理代办代码

热门文章

  1. multi-byte wide-char
  2. 基于单片机的自动追日系统设计_基于单片机的自动浇花系统的设计
  3. arccatalog点要素显示不完_如果你读不完显示屏说明书,至少读完这几句话吧
  4. 2021盐城中考有计算机考试吗,2021盐城中考总分满分是多少?各科目分值设置
  5. python实现程序安装_使用python实现对windows软件包的安装和卸载
  6. itil 容量管理流程_探索ITIL和DevOps的边界
  7. matlab内存溢出的解决方案
  8. Linux 和 Vim 常用命令整理
  9. Django 之 权限系统(组件)
  10. jvm 内存溢出问题排查方法