C#调用ORACLE存储过程返回结果集及函数
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存储过程返回结果集及函数相关推荐
- Java(CallableStatement)调用Oracle存储过程返回结果集(ResultSet)
一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS BEGIN ...
- Java 调用 Oracle 存储过程返回结果集
1. 建立 ref cursor 类型和过程 Sql代码 CREATE OR REPLACE PACKAGE types AS TYPE ref_cursor IS REF CURSOR; END; ...
- oracle 存储过程返回,Oracle 存储过程返回结果集 (转)
Oracle 存储过程返回结果集 (转)[@more@] 1.返回数组 (作者:/Message_Board/Send.?sendto=enhydraboy" target=_blank&g ...
- 存储过程返回结果集_PostgreSQL函数返回结果集
有时我们需要定义返回结果集的函数,本文演示如何编码. 遂古之初,谁传道之?上下未形,何由考之?<天问> 1.函数定义 C语言定义部分 PG_FUNCTION_INFO_V1(quanzl_ ...
- VB调用ORACLE存储过程返回多记录集
一直没有写原创的习惯,每次都是从别的贴子拷贝过来.实在是不好意思.最近想把自己做的一个项目中所解决的问题和大家共享一下.希望对遇见这种情况的朋友有所帮助. 程序中要用到VB调用ORACLE ...
- c# oracle存储过程返回结果集,一个简单的实例给大家分享C#中调用oracle的存储过程...
Oracle方面 1.创建Oracle过程存储 create or replace procedure proce_test(paramin in varchar2,paramout out varc ...
- vb.net调用oracle存储过程,今天搞好了VB.NET调用Oracle存储过程返回游标的问题
代码: Public Function GetData(ByVal procDate As String) As ArrayListTry Dim conn As New Oracle.DataAcc ...
- python 调用mysql存储过程返回结果集
存储过程: delimiter | create procedure get_product_info(in imid int(10),int iuser varchar(20)) begin sel ...
- java调用ORACLE 存储过程返回值22
存储过程代码如下: create or replace package mysp is type refcursor is ref curs ...
最新文章
- 如何实现更换Jupyter Notebook内核Python版本
- 编译detours注意
- ZooKeeper概述与原理
- 跨浏览器Ajax调用封装
- 计算机专业顶尖会议论文,校友胡一公获计算机系统领域顶级会议ASPLOS 2019最佳论文奖...
- 在lcd屏幕上窗口显示一个bitmap_SmartDrop——LED/LCD大屏内容投屏管理软件
- mysql-安装教程
- 1 shell备份数据库MYSQL案例
- pytorch 基于sqs2sqs的中文聊天机器人
- Spring Security——基于表单登录认证原理及实现
- MySQL集群和主从复制分别适合在什么场景下使用
- java中的VO、PO、BO、DAO、POJO
- FTP+MySQL虚拟用户
- Python--随机森林模型
- 小趣味:js编写斗地主规则(完整代码)
- Python批量 png转ico
- tw8836flash制作
- 教你Word一键自动生成目录步骤
- opencv-图像处理1 图像基本操作
- java如何快速标记条_【JAVA】如何利用TODO任务标签高效管理代办代码
热门文章
- multi-byte wide-char
- 基于单片机的自动追日系统设计_基于单片机的自动浇花系统的设计
- arccatalog点要素显示不完_如果你读不完显示屏说明书,至少读完这几句话吧
- 2021盐城中考有计算机考试吗,2021盐城中考总分满分是多少?各科目分值设置
- python实现程序安装_使用python实现对windows软件包的安装和卸载
- itil 容量管理流程_探索ITIL和DevOps的边界
- matlab内存溢出的解决方案
- Linux 和 Vim 常用命令整理
- Django 之 权限系统(组件)
- jvm 内存溢出问题排查方法