С уважением, пожалуйста, не отвечайте на это, сказав, что длина моего поля недостаточно велика. Это не вариант. И с уважением, пожалуйста, не отвечайте на это, говоря мне, что sp_executesql не может принимать входные данные более 2K. Это также не тот случай.
Моя проблема : Я отправляю запрос, используя sp_executesql, где я вставляю изображения в кодировке base64 в поле nvarchar (max). В некоторых случаях я получаю следующую ошибку:
строка или двоичные данные будут усечены. Заявление было прекращено.
У меня есть примеры, когда текст (который включает несколько изображений в кодировке base64) превышает 5 мегабайт. Это также увеличивает длину sp_executesql за 5 мегабайт. Иногда это работает. И у меня есть примеры, где я включил очень маленькие изображения в кодировке base64. Опять же иногда они работают.
Мое рабочее предположение : Кажется, что sp_executesql обнаружил некоторую последовательность символов в кодированном base64 тексте, которая заставляет сервер SQL выдавать ошибку «будет усечена».
Мой вопрос : Существует ли какой-либо метод кодирования моего текста, чтобы предотвратить взрыв SQL при выполнении оператора вставки / обновления?
Ограничения : Я использую CRM с открытым исходным кодом, поэтому я хотел бы вообще не заменять процедуры вставки / обновления. Но я согласен с изменением способа кодирования данных, отправляемых с помощью существующих процедур.
Любая помощь будет принята с благодарностью. Я в тупике!