VARCHAR2(20 BYTE) : дозволяє зберігати лише вказану кількість байтів у стовпці, незалежно від того, скільки символів це представляє. VARCHAR2(20 CHAR): Дозволяє зберігати вказану кількість символів у стовпці незалежно від кількості байтів, якій це прирівнюється. 14 травня 2005 р.

Varchar2(10) використовує поточне значення NLS_LENGTH_SEMANTICS, щоб визначити обмеження для рядка. Якщо це байт, то це 10 байт. Якщо це char, то це 10 символів. У багатобайтових наборах символів вони можуть відрізнятися!

Ключові відмінності між Char і Varchar Значення типу даних Varchar не доповнюються пробілами; значення char доповнюються пробілами до вказаної довжини. Char використовує фіксовану кількість місця для кожного значення, незалежно від довжини збереженого рядка. Навпаки, varchar використовує лише простір, необхідний для зберігання даних.

За угодою та визначенням POSIX байт становить вісім біт. Біт — це двійкова цифра (тобто фундаментальна 1 або 0, яка є основою майже всіх цифрових обчислень). Символ часто складається з одного байта і в деяких контекстах (наприклад, ASCII) може бути визначено як один байт.

Отже varchar2(10 char) є явним. Тут можна зберігати до 10 символів. Varchar2(10) є неявним. Він може зберігати 10 байт або 10 символів, залежно від конфігурації БД.

VARCHAR2(20 БАЙТ) : Дозволяє зберігати лише вказану кількість байтів у стовпці, незалежно від того, скільки символів він представляє. VARCHAR2(20 CHAR) : дозволяє зберігати вказану кількість символів у стовпці незалежно від кількості байтів, якій це прирівнюється.