Troncation inattendue dans les données Nvarchar(Max)
Malgré la déclaration de la variable @SQL1 comme nvarchar(max), qui peut stocker jusqu'à 2 Go de données, le résultat est tronqué à 4000 caractères. Cela peut sembler déroutant, surtout compte tenu de la vaste capacité de données de nvarchar(max).
Le problème réside dans la concaténation des chaînes au sein de la variable @SQL1. Avant d'être affectées à @SQL1, les données sont stockées sous la forme d'un ensemble de chaînes d'une longueur inférieure à 4 000 caractères. Lorsque ces chaînes sont concaténées, elles conservent leur longueur maximale. En conséquence, l'affectation à @SQL1 crée une chaîne d'une longueur de 4 000 caractères, même si le type de données déclaré permet bien plus.
Pour éviter cette troncature, assurez-vous que toutes les chaînes concaténées sont du type nvarchar (max) type de données avant d’effectuer l’affectation. Ceci peut être réalisé en convertissant explicitement des chaînes plus courtes en nvarchar(max). Par exemple :
SET @SQL1 = N'' SET @SQL1 = @SQL1 + N'SELECT DISTINCT Venue...'
En convertissant la chaîne constante en nvarchar(max), la chaîne entière deviendra nvarchar(max) et le problème de troncature sera résolu.
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!