ЧТО ТАКОЕ Лидерство? - PullRequest
0 голосов
/ 26 мая 2019

Я проверял разницу между char и varchar2 от Google.В этой ссылке я наткнулся на слово LEADING LENGTH .ТАМ написано, что

Предположим, вы храните строку 'ORATABLE' в поле CHAR (20) и поле VARCHAR2 (20).Поле CHAR будет использовать 22 байта (2 байта для ведущей длины).Поле VARCHAR2 будет использовать только 10 байтов (8 для строки, 2 байта для ведущей длины).

Q1 : Как поле char будет использовать 22 байта, если строка имеет значение 8символы, если (1 байт = 1 символ)?

Q2 Что такое ЛИДИНГОВАЯ ДЛИНА?почему он занимает 2 байта?

1 Ответ

2 голосов
/ 26 мая 2019

Тип данных CHAR() дополняет строку символами.Таким образом, для 'ORATABLE' это выглядит следующим образом:

'ORATABLE            '
 12345678901234567890

"Начальная длина" - это два байта в начале, которые определяют длину строки.Два байта необходимы, потому что одного байта недостаточно.Два байта допускают длину до 65 535 единиц;один байт допускает длину до 255.

Важный момент: CHAR() и VARCHAR2() используют один и тот же внутренний формат, поэтому нет особых оснований для предъявления иска CHAR().Лично я бы использовал его только для кодов фиксированной длины, таких как коды стран ИСО или номера социального страхования США.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...