Maison >base de données >tutoriel mysql >Comment puis-je transmettre 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.
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.
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!