SQL SERVER 存储过程转成 ORACLE存储过程

SQLSERVER(不带参数的)CREATEPROCEDURE[dbo].[A]ASbeginselect*fromaaaend问题:SQLSERVER调用是execA(... SQL SERVER(不带参数的)
CREATE PROCEDURE [dbo].[A]AS beginselect * from aaaend
问题:SQL SERVER 调用是exec A(VS2010中也是直接定义 'exec A',直接可以调用)
但是换成ORACLE 这个存储过程改怎么写,在哪里调用,用什么语句,放在VS里面又该怎么写。

2.SQL SERVER(带参数的)
ALTER PROCEDURE [dbo].[A]@姓名 VARCHAR(50)AS beginselect * from aaa WHERE 姓名 = @姓名end
问题:SQL SERVER 调用是EXEC dbo.A @姓名 = ''(VS里同理),但是在ORACLE数据库中该怎么写,怎么调用,并且可以在VS中调用ORACLE这个带参数的存储过程

知道的说的仔细点(目前我用的是PL/SQL,测试通过能用就给分)。
展开
 我来答
仙戈雅3n
推荐于2016-09-10 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:897万
展开全部
--在Oracle里利用PL/SQL创建无输入参数的存储过程
create or replace procedure A
(
   temp_cur out sys_refcursor
)
as
begin

 open temp_cur for select * from aaa

end A;

--调用
SQL> var robj sys_refcursor;
SQL> exec A(:robj);
SQL> print robj;


--在Oracle里利用PL/SQL创建带输入参数的存储过程
create or replace procedure A
(
  v_name in aaa.姓名%type,
  temp_cur out sys_refcursor
)
as
begin
    open temp_cur for select * from aaa where 姓名=v_name;

end A;

--调用
SQL> var robj sys_refcursor;
SQL> exec A('your name',:robj);
SQL> print robj;
追问

第一个报这个错,第二个存储过程编译通过,但是调用出错(最好把在那个调用也注明一下,这窗口太多了。)

还有就是Visual Studio 怎么通过代码来调用这2个存储过程,只要运行通过,分数可以加

追答
我在Oracle 自带的 Oracle SQL Developer 测试是没问题的。

另外在C#调用Oracle的存储过程和调用MS SQL Server是没区别的。
chen_hongyang
2015-08-04 · TA获得超过5447个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:867万
展开全部
1 exec 存储过程名称
2 带参数:exec 存储过程名称(参数1,参数2:输出值);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式