为什么存储过程语法正确,但执行报错,说是没有参数
来源:百度知道 编辑:UC知道 时间:2024/05/11 04:01:19
肯定阿
我给你举个例子
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
这样才可以阿
execute immediate mysql into var1 ; 改成 execute immediate sqls into var1 ; tab 表里面没有id这个字段 要么把你实际的存储过程贴上来,我按照你现在的写法执行是没有问题的,只是最后var1的值没用上