2010-10-31 98 views
2

je SQL Server 2000 et j'ai une procédure stockée qui a @output comme varchar(8000) et j'ai une boucle qui maintient concaténer le résultat dans @output et à la fin je fait select @outputSQL Server 2000 varchar (8000) tronqué à 256?

Mon problème est la longueur de sortie est tronquée aux 256 premiers caractères seulement !!! D'autres caractères (sortie) sont manquants.

J'ai essayé d'utiliser TEXT au lieu de varchar mais je m'y suis une erreur

Le texte, ntext et les types de données d'image ne sont pas valides pour les variables locales.

Toute idée est très appréciée

Merci à l'avance

+1

Besoin de nous montrer le code s'il vous plaît. Et j'accepte aussi des réponses à vos questions précédentes – gbn

Répondre

3

Je parie que vous utilisez l'Analyseur de requêtes pour cela. Si vous le faites, c'est probablement un problème de réglage. Dans les options de l'analyseur de requête, essayez de trouver le nombre maximal de caractères affichés dans chaque colonne, par exemple 8000.

+0

En fait j'ai essayé l'analyseur de requêtes après avoir obtenu le même résultat d'exécution du SP en utilisant le code PHP !! – Alaa

1

Il semble que votre méthode d'accès à la connectivité SQL soit limitée. MS SQL Query Analyzer indique que cette fonctionnalité fonctionne ...

Exemple de procédure:

create procedure xTestPtoc 
    @InParam varchar(4000), @OutParam varchar(8000) out 
as 
    set @OutParam = @InParam + @InParam 
go 

Code d'appel:

declare @InParam varchar(4000) 
declare @i int 
declare @OutParam varchar(8000) 

select @i = 1270, @InParam = '', @OutParam = '' 

while (@i > 0) 
    select @InParam = @InParam + convert(varchar(10), @i), @i = @i - 1 

select len(@InParam), @InParam 

exec xTestPtoc @InParam, @OutParam out 

select len(@OutParam), @OutParam 

Résultat d'exécution de code exemple (je sauter la sortie complète des variables , bien sûr):

----------- --------------- 
3973  127012691268... 
(1 row(s) affected) 

----------- --------------- 
7946  127012691268... 
(1 row(s) affected)