存储过程有返回值吗
存储过程可以返回一个整数值,方式是:
exec @r = myproc;
或者通过output.参数获得返回值,这样的返回值不限类型;
有过程mypro
‘贰’ 存储过程能不能返回一个值啊
存储过程有两种方式返回值:
第一:通过output 参数
第二:通过return来实现
而在你的存储过程已经声明了一个output参数,只要你在你的存储过程已经给这个值赋值了,它就能返回回去.
建议一般用output参数,因为它可以返回多个,而return只能是一个,return一般用来返回:影响的行数,错误编码等
简单例子:
DECLARE @tmpCount int
SET @tmpCount int = (SELECT COUNT(*) FROM 表名 WHERE 你要进行搜索的条件)
IF (@tmpCount = 0)
BEGIN
INSERT 操作
RETURN 1
END
ELSE
BEGIN
RETURN 0
END
‘叁’ 存储过程返回值
create procere InsertNull
@TableName varchar(50),
@Result int output
AS
declare @dtName varchar(1000)
set @dtName='insert into ' + @TableName +' default values'
exec(@dtName)
set @Result=SCOPE_IDENTITY()
select @Result As Result --注意,这里显示出来
go
然后exec insertnull ...参数
就相当于select Result
如果在程序里,执行这句之后,就能访问Result字段了
‘肆’ oracle 中运行存储过程作为返回值
oracle可以使用out型参数返回值,例如:
--查询某商品编号是否存在,返回查询状态
createorreplaceprocereproc_getGood
(
param_shopIdnumber,--商品编号
param_flagoutnumber--查询状态0不存在
)
as
declarev_countnumber(1);
begin
selectcount(*)intov_countfromtb_goodswhereshopid=param_shopid;
ifv_count=0then
param_flag:=0;
else
param_flag:=1;
endif;
end;
‘伍’ SQL 取存储过程的返回值
你这个存储过程,这样直接返回字符串,是不行的。存储过程直接返回,只能返回int类型的数据,或者是int类型的字符串。
你需要为你的存储过程定义一个输出参数。然后在调用时,接收这个输出参数。
‘陆’ mysql存储过程可以有返回值吗
MySQL存储过程 如果和SQL一样的话,那么就是本身就有一个返回值了。所以只要引用该存储过程就可以。。