String ou des données binaires d'être tronquée Erreur SQL
J'ai une procédure stockée SQL qui accepte un paramètre de type VARCHAR(MAX).
Autant que je sache, et selon tout ce que j'ai lu sur, la taille maximale de ces chaînes est de 2 go:
MSDN
Pour quelque raison que lors du passage d'une chaîne de plus de 8 KO-je obtenir:
Chaîne ou des données binaires d'être tronquée.
Pourquoi j'obtiens ce message d'erreur, et comment puis-je le résoudre?
suggère de mettre la procédure stockée et code appelant
êtes-vous en mesure de publier le reste de la proc? Il peut être sans rapport avec ce paramètre.
en effet, la doc n'est pas claire; il semble que la limite est de 8 ko, sauf si vous écrivez "max"... ce que je sais par l'utilisation de sgbd oracle, cependant, est que varchar est limitée à 4k; j'ai peut-être tort, je n'ai pas vérifié attentivement et je préfère clob/blob pour arbitrarely de données de grande taille
Désolé pour la fausse alarme, quand il commence à copier la procédure que j'ai vu quelque chose de bizarre (copie de la chaîne à un mauvais param)...donc, le problème est résolu. 10x beaucoup
êtes-vous en mesure de publier le reste de la proc? Il peut être sans rapport avec ce paramètre.
en effet, la doc n'est pas claire; il semble que la limite est de 8 ko, sauf si vous écrivez "max"... ce que je sais par l'utilisation de sgbd oracle, cependant, est que varchar est limitée à 4k; j'ai peut-être tort, je n'ai pas vérifié attentivement et je préfère clob/blob pour arbitrarely de données de grande taille
Désolé pour la fausse alarme, quand il commence à copier la procédure que j'ai vu quelque chose de bizarre (copie de la chaîne à un mauvais param)...donc, le problème est résolu. 10x beaucoup
OriginalL'auteur Lior Ohana | 2011-07-26
Vous devez vous connecter pour publier un commentaire.
Selon le BoL (le lien que vous avez spécifié) il y a une différence dans l'interprétation.
Le montant maximum que vous pouvez utiliser dans une requête (n) est 8000. À des fins de stockage varchar(max) peut gérer 2 go sur le disque.
C'est juste l'interprétation des types de données pour effectuer des requêtes et des fins de stockage. Donc la ligne en bas, vous pouvez utiliser seulement 8000 caractères dans une requête....
OriginalL'auteur Mark Kremers
pour éviter ce problème, vous devez lancer votre chaîne de
varchar(max)
:de cette façon, toute chaîne de plus que max (8000 4000, selon la version), il sera tronqué à la longueur maximale.
OriginalL'auteur knittl
Vous passez une chaîne plus de la colonne dans la base de données, droit?
Essayez d'augmenter la taille de votre colonne.
OriginalL'auteur Junior M
Vous êtes de passage à un chaîne plus grand que le colonne dans la base de données.
Comme votre table de base de données est comme suit:
Mais votre insérez la chaîne (dans vb.net):
OriginalL'auteur Feroj Ahmed