2013-04-29 13 views
1

Je reçois cette erreur dans cette instruction SQL simple lorsque j'essaie d'extraire une chaîne d'une table.La conversion a échoué lors de la conversion de la valeur varchar 'my return value' en type de données int

Msg 245, niveau 16, état 1, procédure prViewRequirements, ligne 18 La conversion a échoué lors de la conversion de la valeur varchar 'Questionnaire d'évaluation cardiaque par Dr.' au type de données int.

/****** Object: StoredProcedure [dbo].[prViewRequirements] Script Date: 04/24/2013 15:44:49 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER PROCEDURE [dbo].[prViewRequirements] 
    @WFRouteID int 

AS 

DECLARE 
@DocumentDescription VARCHAR(100) 

SELECT @DocumentDescription = DocumentDescription 
      FROM tbFollowOnTracking 
      WHERE WFRouteID = @WFRouteID 
      AND IsActive = 1 


      IF (@@ERROR <> 0) 
       GOTO ERRSP  

     RETURN @DocumentDescription 

ERRSP: 
    RETURN -1 

Est-ce que quelqu'un sait pourquoi?

+0

Quelle ligne est la ligne 18? – Patashu

+0

La ligne 18 est - OERE WFRouteID = @WFRouteID –

Répondre

3

Vous essayez de renvoyer un varchar au lieu de int.

RETURN @DocumentDescription 

S'il vous plaît soit faire

select @DocumentDescription 

ou utilisez un paramètre de sortie (recommandé)

ALTER PROCEDURE [dbo].[prViewRequirements] 
    @WFRouteID int 
    , @DocumentDescription varchar(100) = null output 

MISE À JOUR - Voici la procédure complète:

alter procedure dbo.prViewRequirements 
    @WFRouteID int 
    , @DocumentDescription varchar(100) = null output 
AS 

select @DocumentDescription = '' -- Init 

select @DocumentDescription = DocumentDescription 
from tbFollowOnTracking 
where WFRouteID = @WFRouteID 
and IsActive = 1 

return 0 
go 

/* Examples 
declare @DocumentDescription varchar(100) = '' 

exec dbo.prViewRequirements @WFRouteID = 10, @DocumentDescription = @DocumentDescription output 

select @DocumentDescription 
*/ 
+0

Je reçois toujours la valeur NULL retournée pour chaque résultat. –

+0

Ça a marché pour moi. Veuillez copier et coller le mot-clé OUTPUT avec soin. –

0

Essayez celui -

ALTER PROCEDURE [dbo].[prViewRequirements] 

     @WFRouteID INT 
    , @DocumentDescription VARCHAR(100) OUTPUT 

AS BEGIN 

    SELECT @DocumentDescription = t.DocumentDescription 
    FROM dbo.tbFollowOnTracking t 
    WHERE t.WFRouteID = @WFRouteID 
     AND t.IsActive = 1 

    IF @DocumentDescription IS NULL 
     RETURN -1  

    RETURN 0 

END 
+1

Je reçois toujours la même erreur avec ce code –

+0

Désolé, une petite erreur. S'il vous plaît essayer la réponse mise à jour. – Devart

0

Essayez ceci:

alter procedure dbo.prViewRequirements 
    @WFRouteID int 
    , @DocumentDescription varchar(100) = null output 
AS 

BEGIN 
select @DocumentDescription = '' -- Init 

select @DocumentDescription = DocumentDescription 
from tbFollowOnTracking 
where WFRouteID = @WFRouteID 
and IsActive = 1 

END 

Execute le proc comme indiqué ci-dessous

DECLARE @res varchar(100) 
exec dbo.prViewRequirements @WFRouteID,@[email protected] OUTPUT 
select @res 
Questions connexes