加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 如何从存储过程返回字符串值

发布时间:2020-12-12 08:51:07 所属栏目:MsSql教程 来源:网络整理
导读:Alter procedure S_Comp(@str1 varchar(20),@r varchar(100) out)asdeclare @str2 varchar(100)set @str2 ='welcome to sql server. Sql server is a product of Microsoft'if(PATINDEX('%'+@str1 +'%',@str2)0) return @str1+'present in the string'else r
Alter procedure S_Comp(@str1 varchar(20),@r varchar(100) out)
as
declare  @str2 varchar(100)
set @str2  ='welcome to sql server. Sql server is a product of Microsoft'
if(PATINDEX('%'+@str1 +'%',@str2)>0)
    return @str1+'present in the string'
else 
    return @str1+'not present'

我正在执行上述存储过程.我收到以下错误:

消息245,第16级,状态1,过程S_Comp,第8行
将varchar值“Amruthanot present”转换为数据类型int时,转换失败.
请帮我解决这个问题

解决方法

您将结果放在RETURN值中,而不是通过@rvalue.

从MSDN

(RETURN)
Is the integer value that is returned. Stored procedures can return
an integer value to a calling
procedure or an application.

改变你的程序

ALTER procedure S_Comp(@str1 varchar(20),@r varchar(100) out) as 

    declare @str2 varchar(100) 
    set @str2 ='welcome to sql server. Sql server is a product of Microsoft' 
    if(PATINDEX('%'+@str1 +'%',@str2)>0) 
        SELECT @r =  @str1+' present in the string' 
    else 
        SELECT @r = @str1+' not present'

调用程序

DECLARE @r VARCHAR(100)
  EXEC S_Comp 'Test',@r OUTPUT
  SELECT @r

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读