Документация для SQL0614N четко объясняет это: табличное пространство размером 4 КБ допускает максимальную длину ключа 1 КБ, табличное пространство размером 8 КБ допускает максимальную длину ключа 2 КБ, размер страницы 16 КБ допускает максимальную длину ключа 4 КБ, размер страницы 32 КБ допускается максимальная длина ключа 8 КБ.
Вы можете воссоздать свою таблицу на следующем более высоком размере страницы, чтобы избежать этой проблемы.
Я предполагаю, что вы используете табличное пространство размером 4 КБ (по умолчанию), поэтому следующий более высокий размер страницы составляет 8 КБ.
Создание (или повторное использование подходящего существующего) буферного пула размером 8 КБ ( CREATE BUFFERPOOL )
Создайте (или повторно используйте подходящее существующее) табличное пространство размером 8 КБ ( CREATE TABLESPACE ), чтобы использовать новый пул буферов соответствующего размера страницы.
Если таблица уже содержит данные, которые вы не хотите перезагружать, используйте хранимую процедуру ADMIN_MOVE_TABLE , чтобы переместить существующие данные в новое табличное пространство (я).
Если таблица не содержит строк (или может быть быстро перезагружена), удалите таблицу и заново создайте с измененным DDL, добавив IN $your_8kb_tablespace
.
Если таблица будет содержать много миллионов строк, целесообразно разделить ее на три табличных пространства (одно для данных, одно для индексов, одно для длинных данных) - вы также можете сделать это с помощью оператора create table
, см. к документации для деталей.
Для очень больших таблиц рассмотрите возможность использования секционирования по диапазонам и хеш-секционирования, если это разрешено лицензированием и оборудованием.