Объясните про длины полей плиз

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Valera123
Сообщения: 2
Зарегистрирован: 30 мар 2011, 14:56

Объясните про длины полей плиз

Сообщение Valera123 » 30 мар 2011, 15:02

Имеем FB2.0.3, IBExpert от 08.10.2010
(аналогичное поведение на FB2.5 и последнем IBExpert)

Не спрашивайте зачем мне это надо, но создаем БД в UTF8
размер страницы 16к.

В ней создаем таблицу

CREATE TABLE TEST_ASCI (
ID INTEGER NOT NULL,
ASCI_1 VARCHAR(32760) CHARACTER SET ASCII,
ASCI_2 VARCHAR(8185) CHARACTER SET ASCII
);

И вот парадокс, длина поля ASCI_2 не может быть больше 8185,
иначе при заходе на закладку Data в IBExperte вылезает ошибка
block size exceeds implementation restriction.
Почему? Поля в ASCI, соответственно длина всей записи
(не учитывая служебные) 4+32760+8185=40949, это сильно
меньше ограничения в 64к.
Причем никакое поле больше впихнуть в эту таблицу нельзя.

Причем, если увеличить ASCI_2 до 8186 (на единицу),
то ошибка вылезает, а если увеличить ASCI_1 до
32761 (на единицу) то ошибки нет.

Valera123
Сообщения: 2
Зарегистрирован: 30 мар 2011, 14:56

Re: Объясните про длины полей плиз

Сообщение Valera123 » 30 мар 2011, 16:32

Продублировал на sql.ru. Смотрим пишем там.

Ответить