This approach is to resolved the issues while using multi-valued integer values as parameters.
Step 1:
Create a Table-Valued function that would accept the output from the multivalued integer parameter and generate a table format list.
CREATE FUNCTION FnSplit
(
@List nvarchar(2000),
@SplitOn nvarchar(5)
)
RETURNS @RtnValue table
(
Id int identity(1,1),
Value nvarchar(100)
)
AS
BEGIN
While (Charindex(@SplitOn,@List)>0)
Begin
Insert Into @RtnValue (value)
Select
Value = ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))
Set @List = Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
End
Insert Into @RtnValue (Value)
Select Value = ltrim(rtrim(@List))
Return
END
Step 2:
Now in your Stored Procedure use the function by passing you paramter like this:
pgcrm_ApplicationService IN (SELECT Value FROM FnSplit(@ApplicationService,','))
Step 1:
Create a Table-Valued function that would accept the output from the multivalued integer parameter and generate a table format list.
CREATE FUNCTION FnSplit
(
@List nvarchar(2000),
@SplitOn nvarchar(5)
)
RETURNS @RtnValue table
(
Id int identity(1,1),
Value nvarchar(100)
)
AS
BEGIN
While (Charindex(@SplitOn,@List)>0)
Begin
Insert Into @RtnValue (value)
Select
Value = ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))
Set @List = Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
End
Insert Into @RtnValue (Value)
Select Value = ltrim(rtrim(@List))
Return
END
Step 2:
Now in your Stored Procedure use the function by passing you paramter like this:
pgcrm_ApplicationService IN (SELECT Value FROM FnSplit(@ApplicationService,','))
No comments:
Post a Comment