Maison >base de données >tutoriel mysql >Comment puis-je transmettre des valeurs entre le code SQL et les procédures stockées ?

Comment puis-je transmettre des valeurs entre le code SQL et les procédures stockées ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-03 17:41:39181parcourir

How Can I Pass Values Between SQL Code and Stored Procedures?

Passer des valeurs entre le code SQL et les procédures stockées

Lorsque vous travaillez avec SQL, il est parfois nécessaire d'attribuer le résultat d'un appel exec à une variable. Dans ce scénario, vous souhaitez attribuer la sortie de up_GetBusinessDay à une variable appelée @PreviousBusinessDay.

Limitations de l'attribution directe des résultats d'exécution

Bien qu'il puisse sembler logique d'attribuer le résultat d'exécution directement à un variable, cette approche n'est pas prise en charge dans SQL. La raison en est que l'instruction exec est utilisée pour exécuter des procédures stockées sans renvoyer de valeur. Par conséquent, vous ne pouvez pas attribuer directement le résultat d'exécution à une variable.

Utilisation des paramètres de sortie

Pour renvoyer une valeur unique à partir d'une procédure stockée, vous pouvez utiliser un paramètre de sortie. Un paramètre de sortie permet de spécifier une variable qui recevra la valeur renvoyée par la procédure stockée. Voici comment créer et utiliser un paramètre de sortie dans SQL Server :

Définition de la procédure stockée :

CREATE PROCEDURE YourStoredProcedure 
(
    @Param1 int
   ,@Param2 varchar(5)
   ,@Param3 datetime OUTPUT
)
AS
    IF ISNULL(@Param1, 0) > 5
    BEGIN
        SET @Param3 = GETDATE()
    END
    ELSE
    BEGIN
        SET @Param3 = '1/1/2010'
    END
    
    RETURN 0
GO

Procédure stockée Appel :

DECLARE @OutputParameter datetime
       ,@ReturnValue     int

EXEC @ReturnValue = YourStoredProcedure 1, NULL, @OutputParameter OUTPUT

PRINT @ReturnValue
PRINT CONVERT(char(23), @OutputParameter, 121)

Sortie :

0
2010-01-01 00:00:00.000

En utilisant un paramètre de sortie, vous pouvez efficacement attribuer le résultat d'un appel exec à une variable . Cette technique est couramment utilisée lorsque vous devez récupérer une seule valeur à partir d'une procédure stockée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn