簡體   English   中英

如何從存儲過程返回字符串值

[英]How to return string value from the stored procedure

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值而不是傳遞的@r值中。

來自MSDN

(RETURN)返回的整數值。 存儲過程可以將整數值返回給調用過程或應用程序。

改變你的程序。

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

改變你的

return @str1+'present in the string' ;

set @r = @str1+'present in the string' 

使用SELECT或輸出參數。 更多信息可以在這里找到: http//www.sqlteam.com/forums/topic.asp?TOPIC_ID = 100201

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/return-transact-sql?view=sql-server-ver15

是返回的整數值。 存儲過程可以向調用過程或應用程序返回一個整數值。

語法syntaxsql

返回 [ integer_expression ]

它只返回整數值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM