Ограничение ячейки SQL server

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 302
Благодарностей
702
Баллы
113
Доброго времени суток, уже не знаю куда податься, надеюсь тут есть спецы которые шарят)

Ситуация следующая, поднял докер контейнер с sql базой, начал пытаться в ячейку записать json файл, перед этим его в base64 конвертнув.
Стандартным кубиком сходу не получилось, вываливается ошибка на ограничение в 128 символов или чёт такое, ну не проблема, подкинул либу систем дата сукили и данные начали добавляться.
Но тут выяснилось что json то обрезаный до 65535 символов, начал проверять тип столбца, указан NVARCHAR -1, значит тут всё норм,проверил переменную, мб зенопостер её порезал, нет, в переменной 165к символов, попробовал явно указывать тип данных при добавлении в бд, всеравно режет до 65535.

Предположил что дело в настроках самого sql сервера в докере, полез в контейнер, выполнил там
C#:
> SELECT name, value
2> FROM sys.configurations
3> WHERE name LIKE '%max%';
и увидел вот такую строку max text repl size (B) 65536 и сразу в ладоши захлопал, подумал вот оно ограничение, изменил на 2147483647, рестартанул сервер и один хрен получаю ограничение в 65535 символов.

Мб кто знает кто в этом виноват и что с этим делать?
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 246
Благодарностей
1 820
Баллы
113
Скорее всего проблема в том, что настройки БД в контейнере сбрасываются в дефолтные при перезагрузке контейнера.

Попробуй указать настройки БД при запуске контейнера. Пример для MySQL:
docker run --name mysql1 -d container-registry.oracle.com/mysql/community-server:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_col (источник)
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 302
Благодарностей
702
Баллы
113
Скорее всего проблема в том, что настройки БД в контейнере сбрасываются в дефолтные при перезагрузке контейнера.

Попробуй указать настройки БД при запуске контейнера. Пример для MySQL:
docker run --name mysql1 -d container-registry.oracle.com/mysql/community-server:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_col (источник)
Забыл отписать, по классике дело было не в бобине, суть в том что я проверял количество символов в ячейке посредством захода ms sql manager и там прямо из таблицы копировал. Так вот 65535 это ограничение количества символов в графическом интерфейсе менеджера, когда я решил проверить количество символов не через него а через свою софтину (получив значение обычным запросом) то мне отдало весь джейсон на 200к символов.
 
  • Спасибо
Реакции: nicanil

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)