Максимальная длина строки, которая может быть возвращена из хранимой процедуры в SQL Server 2008 в приложения .net

StackOverflow https://stackoverflow.com/questions/9400934

Вопрос

Я возвращаю статическую строку из хранимой процедуры (в SQL Server 2008), как показано ниже:

общий

Если статическая длина строки превышает некоторый предел (например: 8 КБ), то в приложения .net возвращается только частичная строка (например: 7 КБ).

Хотя я пробовал разными способами, например, назначал статическую строку для varchar(max) и выбирал переменную, по-прежнему возвращал только частичную строку.

Я должен вернуть полную строку размером не более 5 МБ.Итак, основные проблемы:

  1. Какую максимальную длину строки я могу вернуть из хранимой процедуры
  2. Как вернуть строку размером 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()).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top