Я пытаюсь смоделировать запрос для столбца, который будет VARCHAR(120), но на самом деле будет хранить 480 байтов.
Длина 480 устанавливается как VARCHAR (120) = 120 x 4 = 480 байтов. Это происходит из-за кодового блока 32 спецификации строки. Это означает, что для каждого 1 символа он будет использовать 4 байта.
Я не уверен в синтаксисе для DDL. Мои исследования показывают, что при создании таблицы должен быть оператор, который устанавливает набор символов в UTF-32, но я не уверен. Это для среднего уровня DB2 (не мейнфрейма)
Вот что-то, что я нашел, но я не уверен, что это верно, и как работает COLLATE
.
ALTER TABLE table_name
MODIFY column_name VARCHAR(255)
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
Любая помощь будет оценена!