Dans T-SQL, une tâche courante consiste à combiner nombres et chaînes pour formater un champ. Par exemple, vous devrez peut-être afficher les poids ou les dimensions en utilisant des unités spécifiques. Cependant, lors de la combinaison d'entiers et de chaînes, des erreurs de conversion peuvent survenir.
Considérez l'extrait de code suivant qui vise à concaténer et formater des nombres pour les poids et les dimensions :
ALTER FUNCTION [dbo].[ActualWeightDIMS] ( @ActualWeight int, @Actual_Dims_Lenght int, @Actual_Dims_Width int, @Actual_Dims_Height int ) RETURNS varchar(50) AS BEGIN DECLARE @ActualWeightDIMS varchar(50); --Actual Weight IF (@ActualWeight is not null) SET @ActualWeightDIMS = @ActualWeight; --Actual DIMS IF (@Actual_Dims_Lenght is not null) AND (@Actual_Dims_Width is not null) AND (@Actual_Dims_Height is not null) SET @ActualWeightDIMS= @Actual_Dims_Lenght + 'x' + @Actual_Dims_Width + 'x' + @Actual_Dims_Height; RETURN(@ActualWeightDIMS); END
Lors de l'utilisation de la fonction, une erreur se produit : "La conversion a échoué lors de la conversion la valeur varchar 'x' au type de données int." Cela se produit lors de la concaténation d'entiers sans les convertir explicitement en chaînes.
Pour résoudre l'erreur, convertissez explicitement les paramètres entiers en VARCHAR avant la concaténation :
SET @ActualWeightDIMS = CAST(@Actual_Dims_Lenght AS VARCHAR(16)) + 'x' + CAST(@Actual_Dims_Width AS VARCHAR(16)) + 'x' + CAST(@Actual_Dims_Height AS VARCHAR(16))
Ceci garantit que les paramètres sont traités comme des chaînes, permettant leur concaténation avec le délimiteur 'x'.
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!