Bonjour,


Je construis dans ma procédure stockée une variable qui contient une requête SQL.
Cette requête est une requête UNION (ce qui explique pourquoi elle doit être si longue ... )
J'exécute ensuite ma requête dans la procédure stockée en faisant appel à la fonction sp_executesql.

Voila donc ce que cela donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
DECLARE @SQLString nvarchar(4000);  /* 4000 est la valeur max pour un nvarchar */
 
SET @SQLString = 'SELECT FROM UNION SELECT FROM ....' ;
 
EXECUTE sp_executesql @SQLString;

Je suis donc coincé puisque ma requête dépasse les 4000 caractères maximum autorisés pour un nvarchar.


J'ai donc changé le type nvarchar en varchar qui autorise jusqu'à 8000 caractères MAIS l'appel à sp_executesql provoque une erreur à l'éxecution


Msg*214, Niveau*16, État*2, Procédure*sp_executesql, Ligne*676
Paramètre '@statement' de type 'ntext/nchar/nvarchar' attendu par la procédure.

Si quelqu'un a une brillante idée pour me sortir de cette affaire


Cdlt.