Oracle在存储过程中如何返回结果集
Oracle和Sqlserver不一样的地方有很多。
个人最深的体会是存储过程返回结果集,在Sqlserver中直接select查询就行,Oracle就不行了。
这里,就用最简单的例子说明存储过程返回结果集的例子
CREATE OR REPLACE PROCEDURE 存储过程名(
字段名 in VARCHAR2,
l_result OUT TYPES.RQ_REF_CURSOR -- 包里面方法名
)
is
str_sql varchar2(8000) := '';
begin
str_sql:='select * from tabelname where ID='||字段名;
open l_result for str_sql;
END Region_Linkage;
创建包(非必须)
CREATE OR REPLACE PACKAGE TYPES AS
TYPE RQ_REF_CURSOR IS REF CURSOR;
END;
创建包并非是必须的,将 REF CURSOR 直接加在存储过程的OUT关键字后面也可以
另外补充上C#中调用存储过程的通用方法
public DataTable InsertT_BUILDITEM(string REGION_ID)
{
DataSet ds = new DataSet();
try
{
string sql = "存储过程名";
OracleConnection con = this._sqlCon;
OracleCommand cmd = new OracleCommand(sql, con);
cmd.CommandType = CommandType.StoredProcedure; //申明是存储过程
cmd.Parameters.Add("传入参数名", OracleType.NVarChar).Value = REGION_ID;
cmd.Parameters.Add("返回的游标名", OracleType.Cursor).Direction = ParameterDirection.Output;
OracleDataAdapter ad = new OracleDataAdapter(cmd);
ad.Fill(ds, "report_build");
}
catch (Exception e)
{
throw e;
}
return ds.Tables[];
}
相关文档
Oracle视频教程:http://oracle.so138.com/video
Oracle初级教程:http://www.cnblogs.com/linjiqin/category/349944.html
Oracle在存储过程中如何返回结果集的更多相关文章
- oracle调用存储过程和函数返回结果集
在程序开发中,常用到返回结果集的存储过程,这个在mysql和sql server 里比较好处理,直接返回查询结果就可以了,但在oracle里面 要 out 出去,就多了一个步骤,对于不熟悉的兄弟们还得 ...
- Dapper完美兼容Oracle,执行存储过程,并返回结果集。
Dapper完美兼容Oracle,执行存储过程,并返回结果集. 这个问题,困扰了我整整两天. 刚刚用到Dapper的时候,感觉非常牛掰.特别是配合.net 4.0新特性dynamic,让我生成泛型集合 ...
- oracle数据库存储过程中的select语句的位置
导读:在oracle数据库存储过程中如果用了select语句,要么使用"select into 变量"语句要么使用游标,oracle不支持单独的select语句. 先看下这个存储过 ...
- oracle数据库存储过程中NO_DATA_FOUND不起作用解决
oracle数据库存储过程中NO_DATA_FOUND不起作用 1.首先创建一个表lengzijiantest,表中只有一个字段f_id ? 1 2 3 4 5 [cpp] CREATE TABLE ...
- (转载)oracle 在一个存储过程中调用另一个返回游标的存储过程
原文链接:http://www.jb51.net/article/20160.htm 实际项目当中经常需要在一个存储过程中调用另一个存储过程返回的游标,本文列举了两种情况讲述具体的操作方法. 第一种情 ...
- MyBatis调用存储过程,含有返回结果集、return参数和output参数
Ibatis是我们经常使用的O/R映射框架,mybats是ibatis被Google收购后重新命名的一个工程,当然也做了大量的升级.而调用存储过程也是一次额C/S架构模式下经常使用的手段,我们知道,i ...
- Oracle plsql存储过程中out模式参数的用法
在plsql中,存储过程中的out模式的参数可以用来返回数据,相当于函数的返回值.下面是一个小例子. 沿用上一篇的emp表结构和数据. 存储过程如下: create or replace proced ...
- ORACLE在存储过程中记录日志的处理包
Java开发过程中一般使用LOG4J来将程序的运行日志记录到文件中,在ORACLE存储过程中也需要记录日志,我将工作中自己整理的一个记录日志的包分享出来,其实很简单,希望大家多提意见. 一.表结构 为 ...
- SQL SERVER 存储过程中SELECT 返回值如何赋值给变量
今天在处理一个问题时,使用到一个存储过程,是用于更新并获取最新ID的.在使用过程中,需要获取到这个ID并赋值给变量,结果用EXEC @ID = 存储过程的方式获取失败了.具体情况如下: 为了还原整个情 ...
随机推荐
- 教你一招:Win10系统如何正确卸载edge浏览器?
Edge浏览器作为Win10系统默认浏览器,尽管我们将其他浏览器设置为默认程序,但是有时候还是会自动弹出,非常的不爽,但是在控制面板中却又找不到卸载“Edge”浏览器的选项.下面小编就教大家卸载“Ed ...
- zabbix监控单核cpu使用率和多核cpu总负载
zabbix自带的基础监控的模板中只有对单核cpu负载1分钟.5分钟.15分钟的监控. 添加对总的cpu负载的监控 key:system.cpu.load[all,avg1] 1分钟cpu总的负载 添 ...
- HTML2
1. IIS是一个软件,在"客户端服务器"模型中,它是服务器端软件,它主要提供基于HTTP的文档服务,主要是WWW 的发送,以及FTP的文件下载服务. VS提供了" ...
- C# byte[]、struct、intptr等的相互转换
1.struct byte[]互相转换 //struct转换为byte[] public static byte[] StructToBytes(object structObj) { int siz ...
- Linux下php安装Redis扩展
说明: 操作系统:CentOS php安装目录:/usr/local/php php.ini配置文件路径:/usr/local/php7/etc/php.ini Nginx安装目录:/usr/loca ...
- centos6.7设置非root帐户自动登录
1.在/etc/gdm/custom.conf文件中修改并加入以下这段 [daemon]AutomaticLogin=你的用户名AutomaticLoginEnable=True 2.重启 reboo ...
- css面包屑导航编号
content:counter(flag);counter-increment: flag;-->一般给导航条编号1,2,3
- 深入理解javascript原型和闭包(9)——简述【执行上下文】下
继续上一篇文章(http://www.cnblogs.com/wangfupeng1988/p/3986420.html)的内容. 上一篇我们讲到在全局环境下的代码段中,执行上下文环境中有如何数据: ...
- MRDS学习二——机械车
准备机械车: 第一步:从Service中选择一个Generic Differential Drive (通用差速驱动:同一轴的左右轮胎可以转动不同速度的车子)放入Diagram中. 第二步:对其进行配 ...
- PHP session
PHP Session PHP session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置.Session 变量存储单一用户的信息,并且对于应用程序中的 ...