为什么存储过程语法正确,但执行报错,说是没有参数

 我来答
Csharp强者
2007-12-03
知道答主
回答量:13
采纳率:0%
帮助的人:0
展开全部
肯定阿

我给你举个例子

create proc test_proc @test1 int, @test2 int

as
select * from test
if @test1>=@test2
begin
print '第二个传入的值必须比第一个值大'
end
else
begin
while @test1<=@test2
begin
print @test1
set @test1=@test1+1
end
end

如果你这么调用的话

exec test_proc

错误
消息 201,级别 16,状态 4,过程 test_proc,第 0 行
过程或函数 'test_proc' 需要参数 '@test1',但未提供该参数。

如果你

exec test_proc 1

消息 201,级别 16,状态 4,过程 test_proc,第 0 行
过程或函数 'test_proc' 需要参数 '@test2',但未提供该参数。

因为我这个存储过程定义了两个参数

所以你调用的时候必须写两个参数

比如:
exec test_proc 1,2

这样才可以阿
上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光... 点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
进松兰析水
2019-03-05 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:29%
帮助的人:793万
展开全部
肯定阿
我给你举个例子
create
proc
test_proc
@test1
int,
@test2
int
as
select
*
from
test
if
@test1>=@test2
begin
print
'第二个传入的值必须比第一个值大'
end
else
begin
while
@test1<=@test2
begin
print
@test1
set
@test1=@test1+1
end
end
如果你这么调用的话
exec
test_proc
错误
消息
201,级别
16,状态
4,过程
test_proc,第
0

过程或函数
'test_proc'
需要参数
'@test1',但未提供该参数。
如果你
exec
test_proc
1
消息
201,级别
16,状态
4,过程
test_proc,第
0

过程或函数
'test_proc'
需要参数
'@test2',但未提供该参数。
因为我这个存储过程定义了两个参数
所以你调用的时候必须写两个参数
比如:
exec
test_proc
1,2
这样才可以阿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
以画屏屏8748
2007-12-03 · TA获得超过7191个赞
知道大有可为答主
回答量:2581
采纳率:0%
帮助的人:3336万
展开全部
execute immediate mysql into var1 ; 改成 execute immediate sqls into var1 ; tab 表里面没有id这个字段 要么把你实际的存储过程贴上来,我按照你现在的写法执行是没有问题的,只是最后var1的值没用上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式