SQL Server 2000 varchar (8000) усекать до 256? - PullRequest
2 голосов
/ 31 октября 2010

У меня есть SQL Server 2000, и у меня есть хранимая процедура, которая имеет @output как varchar(8000) и у меня есть цикл, который сохраняет конкатенацию результата в @output, и в конце я сделал select @output

Моя проблема в том, что длина вывода усекается только до первых 256 символов !!! Другие символы (вывод) отсутствуют.

Я пытался использовать TEXT вместо varchar, но получил ошибку

Типы данных text, ntext и image недопустимы для локальных переменных.

Любая идея высоко ценится

Заранее спасибо

Ответы [ 3 ]

3 голосов
/ 31 октября 2010

Бьюсь об заклад, вы используете анализатор запросов для этого. Если вы это сделаете, скорее всего, это проблема настройки. В параметрах анализатора запросов попытайтесь найти настройку для максимального количества символов, отображаемых в каждом столбце, установите ее выше, например, 8000.

1 голос
/ 03 ноября 2010

Похоже, это ограничение вашего метода доступа к соединению SQL.MS SQL Query Analyzer говорит, что такая функциональность работает ...

Пример процедуры:

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

Код вызова:

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

Результат выполнения примера кода (пропускаюполный вывод переменных, конечно):

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

----------- ---------------
7946        127012691268...
(1 row(s) affected)
0 голосов
/ 10 марта 2011

По умолчанию в старых библиотеках доступа к данным, таких как ADO, столбец ODBC обрезает до 256 символов Чтобы получить более 256 символов, вы должны вызвать специальный метод, такой как GetChunk: http://msdn.microsoft.com/en-us/library/ms681747(v=VS.85).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...