Максимальная длина строки, которая может быть возвращена из хранимой процедуры в SQL Server 2008 в приложения .net
-
29-10-2019 - |
Вопрос
Я возвращаю статическую строку из хранимой процедуры (в SQL Server 2008), как показано ниже:
общийЕсли статическая длина строки превышает некоторый предел (например: 8 КБ), то в приложения .net возвращается только частичная строка (например: 7 КБ).
Хотя я пробовал разными способами, например, назначал статическую строку для varchar(max)
и выбирал переменную, по-прежнему возвращал только частичную строку.
Я должен вернуть полную строку размером не более 5 МБ.Итак, основные проблемы:
- Какую максимальную длину строки я могу вернуть из хранимой процедуры
- Как вернуть строку размером 5 МБ из хранимой процедуры в приложения .net.
Я прошу кого-нибудь помочь мне решить эту проблему. пожалуйста, найдите код ниже
общийЗаранее спасибо, компьютерщики.
Решение 2
Спасибо за поддержку, я нашел 1 исправить для этого на http://www.sqlservercentral.com/forums/topic350590-145-1.aspx
Исправление - это, объявляйте переменную и должны быть изучены для пустой строки и объединены с основной строкой.
DECLARE @test varchar(MAX);
set @test =''
select @test = @test + '<Invoice>.....'
.
Если длина строки <8000 она будет работать без приведенного выше подхода.
Спасибо всем.
Другие советы
Поскольку вы, похоже, не используете соединение OLEDB (которое имеет ограничение 8 КБ), я думаю, что проблема в коде вашей процедуры.
Или, возможно, для версии совместимости вашей базы данных установлено значение, отличное от SQL Server 2008 (SQL Server 2000 не может возвращать более 8 КБ с использованием кода GetString()
).