powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Максимальная длина поля json/jsonb
12 сообщений из 12, страница 1 из 1
Максимальная длина поля json/jsonb
    #40033240
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Подскажите, есть ли у поля и типом json/jsonb максимальное значение, которое он может хранить в виде текста?
И как запросом можно определить самый длинный json в таблице, имеющей поле с типом json/jsonb?
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033267
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова,

PostgreSQL ограничивает только максимальную длину всего поля в 1ГБ.
Или вопрос был про TOAST?

Запрос по схеме влом сейчас писать. К тому же для этого нужно еще рабочий ноут доставать и VPN поднимать. Так что, простите.
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033268
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128

Или вопрос был про TOAST?

что это такое ?
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033272
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова,

ну Вы написали "в виде текста". Но в виде текста PostgreSQL хранит только относительно короткие поля. Если длина поля превышает 2К (по умолчанию), то текст сжимается LZ. Подробнее о TOAST можно почитать в родной документации .
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033286
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я имела в виду следующее:
делая селект из таблицы в которой есть тип поля json я вижу строку с json'ом.
Я хочу таблицу из postgresql перенести в другую СУБД, в которой нет такого типа. Для этого я хочу сделать обычное текстовое поле varchar нужной длины. А для этого я хочу выяснить максимальную длину текста хранящегося в поле с типом json
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033288
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова,

Не более 1 гигабайт, как я уже писал выше.

Вот только не забудьте еще о кодировке. Например, в PostgreSQL у Вас JSON может быть в UTF-8, а в целевой БД - в UTF-16. И тогда один гигабайт может неожиданно превратиться в два. И наоборот, если в целевой БД не используется юникод, то поле может сильно в длине уменьшится, если в нем много кириллицы или даже, упаси господи, китайских иероглифов )
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033290
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128,

а нет способа выяснить максимальную длину текста в символах, которое хранится в поле с типом json?
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033291
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова,

length() и char_length() как раз и возвращают длину в символах (после преобразования JSON в строку).
Вот только один символ в UTF-8 может занимать от одного до четырех байт.
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033295
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128,

а как преобразовать json в char?

Код: sql
1.
select length(to_char(json_value_field)) from table;



авторfunction to_char(json) does not exist
No function matches the given name and argument types. You might need to add excplicit type casts
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033297
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033298
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова
ptr128,

а как преобразовать json в char?


Код: sql
1.
select length(json_value_field::text) from table;
...
Рейтинг: 0 / 0
Максимальная длина поля json/jsonb
    #40033302
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128
Ольга Семенова
ptr128,

а как преобразовать json в char?


Код: sql
1.
select length(json_value_field::text) from table;



спасибо большое
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Максимальная длина поля json/jsonb
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]