Change like this and try:---EXEC usp_OrderEntryLineItem_InventorySearch_List_New 6, '7||~C~||750||~C~||1||~R~||8||~C~||850||~C~||2'ALTER PROCEDURE [dbo].[usp_OrderEntryLineItem_InventorySearch_List_New](@company_Id NUMERIC(18,0),@selectedWarehouseDetails VARCHAR(MAX))ASBEGINDECLARE @WarehouseDetails TABLE (inventory_wh_lot_id NUMERIC(18,0) , RequiredQuantitySelected VARCHAR(255) null, NumberOfUnitsSelected VARCHAR(255) null)DECLARE @Value varchar(1000),@Residue varchar(8000)SET @selectedWarehouseDetails=REPLACE(REPLACE(@selectedWarehouseDetails,'||~C~||','.'),'||~R~||',',')WHILE @selectedWarehouseDetails IS NOT NULLBEGIN SELECT @Value=CASE WHEN CHARINDEX(',',@selectedWarehouseDetails)>0 THEN LEFT(@selectedWarehouseDetails,CHARINDEX(',',@selectedWarehouseDetails)-1)-1) ELSE @selectedWarehouseDetailsEND,@Residue=CASE WHEN CHARINDEX(',',@selectedWarehouseDetails)>0 THEN SUBSTRING(@selectedWarehouseDetails,CHARINDEX(',',@selectedWarehouseDetails)+1,LEN(@selectedWarehouseDetails)-CHARINDEX(',',@selectedWarehouseDetails)) ELSE NULLENDINSERT INTO @WarehouseDetailsSELECT PARSENAME(@Value,3),PARSENAME(@Value,2),PARSENAME(@Value,1)ENDSELECT * FROM @WarehouseDetailsEND