Reputation: 534
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'
I am executing the above stored procedure. I am getting the following error :
Msg 245, Level 16, State 1, Procedure S_Comp, Line 8 Conversion failed when converting the varchar value 'Amruthanot present' to data type int.
Please do help me resolving this
Upvotes: 23
Views: 136392
Reputation: 11
Is the integer value that is returned. Stored procedures can return an integer value to a calling procedure or an application.
Syntax syntaxsql
RETURN [ integer_expression ]
it only returns integer values.
Upvotes: 1
Reputation: 58441
You are placing your result in the RETURN
value instead of in the passed @r
value.
From 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
Upvotes: 31
Reputation: 6583
change your
return @str1+'present in the string' ;
to
set @r = @str1+'present in the string'
Upvotes: 8
Reputation: 1147
Use SELECT or an output parameter. More can be found here: http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=100201
Upvotes: 1