SQLServer和ORACLE 存储过程的调用(返回结果集)

本文介绍了如何在SQLServer和Oracle中创建返回结果集的存储过程,并展示了C#中调用这两个数据库的存储过程获取结果集的方法。在SQLServer中,通过exec直接调用存储过程即可,而在Oracle中,需要使用out参数和sys_refcursor。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQLServer相比Oracle是很随便的,存储过程里select * from tb 就能返回一个结果集出来。在C#里调用时,能exec proc直接出结果集。

 

--SQL中返回结果集的存储过程:

create proc retable(@i int)
as
begin
select * from a where id=@i
end

GO

 

//C#里调用存储过程返回结果集的一种简便方法:

String sql = "exec retable "+textBox1.Text;

 

如果C#里调用SQLServer其他存储过程,那格式和下面ORACLE差不多。

 

Oracle里返回结果集需要用到out sys_refcursor游标,用存储过程和包都可以。

 

--Oracle中返回结果集的存储过程:

create or replace procedure outputtable(i_n int,emp out sys_refcursor)
as
begin
     open emp for
     select * from testa where a=i_n;
end outputtable;

 

想查看结果的话也比较麻烦,需要在pl-sql中先test这个存储过程,填入参数,F8运行,然后去output的value右下角点...这个东西。

(还有一种输出的方法是在command window中运行,和sqlplus类似,得用dbms_output.put_line('hell world)或者print 变量,但是command window对游标的支持貌似有问题,无法定义?)

&n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值