ALTER PROCEDURE dbo.StoredProcedure8
@emp_code bigint,
@co_id bigint,
@p decimal(8,2) output
AS
SELECT @p = (select sum(tran_value) from emp_ded_ben_trans where [email protected]_code and [email protected]_id and period_flg=2 and tax_flg=0)
RETURN
Répondre
Les procédures stockées ne sont pas faits pour « retour des valeurs » - c'est ce que vous avez enregistré des fonctions pour.
CREATE FUNCTION dbo.CalculateSomething
(@emp_code bigint, @co_id bigint)
RETURNS DECIMAL(8, 2)
AS BEGIN
RETURN
(SELECT SUM(tran_value)
FROM dbo.emp_ded_ben_trans
WHERE
emp_code = @emp_code AND co_id = @co_id
AND period_flg = 2 AND tax_flg = 0)
END
Vous pouvez ensuite appeler cette fonction stockée comme ceci:
SELECT dbo.CalculateSomething(value_for_emp_code, value_for_co_id)
et retourner un DECIMAL (8,2) du calcul.
Les procédures stockées renvoient le nombre de lignes affectées par leur opération - un INT.
Si vous devez renvoyer une valeur à partir d'un proc stocké, vous devez utiliser le type de paramètre OUTPUT et utiliser la technique indiquée par AdaTheDev - vous devez saisir la valeur de sortie dans une variable.
Pour appeler que sproc et récupérer le paramètre de sortie, vous faites (par exemple):
DECLARE @p DECIMAL(8,2)
EXECUTE dbo.StoredProcedure8 123, 456, @p OUTPUT
-- @p now contains the output value
Mise à jour:
Vous n'avez pas besoin d'utiliser RETURN
- Vous avez raison en ce qu'un RETURN
ne peut retourner un INTEGER. Mais une valeur de retour est différente d'un paramètre OUTPUT qui est ce que vous utilisez réellement.
-à-dire pour obtenir une valeur de retour d'une procédure stockée, est une syntaxe différente:
DECLARE @Result INTEGER
EXECUTE @Result = SomeSproc
D'abord, vous pouvez pas utiliser une procédure stockée par une fonction si vous devez renvoyer une valeur unique basant sur les paramètres d'entrée
Si votre sp décimale de retour lorsque vous avez besoin entier - il suffit de lancer: SELECT (CAST @d AS INT)
mais cela est très dangereux (dépassement possible de type)
je dois retourner décimal valeur de sp. sont possibles – shmandor
@shmandor: votre sp actuel a un paramètre de sortie décimale. n'est-ce pas suffisant? La réponse d'AdaTheDev est de savoir comment l'utiliser correctement. param est déclaré comme décimal et la variable est déclarée comme décimale. nulle part int – abatishchev
Si votre colonne tran_value est de type décimal, la @p aura des valeurs décimales après l'exécution de la requête ...
Create Table #test
(ID1 Int,
ID2 Decimal(8,2)
)
Insert into #test Values (1,1.1)
Insert into #test Values (2,2.2)
Insert into #test Values (3,3.3)
Declare @p Decimal(8,2), @intp int
Select @intp = Sum(ID1), @p = Sum(ID2) from #test
Select @intp as IntegerSum, @p as DecimalSum
Drop Table #test
Sortie
IntegerSum DecimalSum
----------- ---------------------------------------
6 6.60
Remarque: Vous ne devez pas avoir faire quelque chose de spécifique pour renvoyer la valeur de Stored Procedure via le paramètre de sortie ... Affectez juste la valeur au paramètre de sortie dans votre SP, il sera automatiquement renvoyé à l'appelant.
Cela signifie que votre SP est correcte, même sans la déclaration de retour
- 1. Utilisation des paramètres de procédure stockée en option
- 2. Paramètres de sortie de procédure stockée dans SQL Server Profiler
- 3. paramètres de procédure stockée MySQL
- 4. Utilisation de la procédure stockée
- 5. MySQL procédure stockée - Problème sortie des valeurs
- 6. Comment mapper des paramètres de procédure stockée lors de l'utilisation de la procédure stockée pour CRUD?
- 7. MySQL procédure stockée - valeurs de sortie Problème
- 8. paramètres Oracle procédure stockée OUT
- 9. precision décimal et échelle en utilisant LINQ et la procédure stockée avec des paramètres de sortie
- 10. Appelez une procédure stockée qui nécessite des paramètres sans paramètres?
- 11. Exécuter une procédure stockée avec un paramètre de sortie?
- 12. Utilisation de UPDATE dans la procédure stockée avec des paramètres facultatifs
- 13. Obtenir les paramètres de la procédure stockée 'type
- 14. Appel de la procédure stockée en ignorant les paramètres de sortie
- 15. Pymssql: procédure stockée appelant avec paramètres
- 16. Utilisation de la procédure stockée dans Crystal Report 8.5?
- 17. Procédure stockée sortie String et Cursor
- 18. appel procédure stockée et le passage de paramètres d'une autre procédure stockée
- 19. Procédure stockée SQL avec paramètres optionnels infinis
- 20. Utilisation de NHibernate avec des paramètres de sortie
- 21. erreur lors de l'obtention de la sortie d'une procédure stockée
- 22. 6 DERNIERS dossiers de la sortie de la procédure stockée
- 23. procédure stockée mysql avec paramètres problème
- 24. Appel d'une procédure stockée avec des paramètres null et SqlDataAdapter
- 25. peut-on avoir une procédure stockée avec des paramètres de sortie et de la déclaration de retour?
- 26. Utilisation de procédure stockée avec Entity Framework où les paramètres SP ne correspondent pas
- 27. procédure stockée - Envoyer une liste de paramètres pour une utilisation avec la clause IN
- 28. Passage d'un nombre variable de paramètres à la procédure stockée
- 29. Passage de paramètres en XML à une procédure stockée
- 30. sorties de la procédure stockée de contrôle
Quelle est votre question? –