CHAR в Oracle SQL. Введение
CHAR— это тип данных в Oracle SQL, который используется для хранения строк фиксированной длины. В отличие от VARCHAR2, где длина строки может быть переменной, CHAR всегда занимает заданное количество символов, заполняя недостающие пробелами.
Знание, как работает CHAR, особенно важно при:
Интеграции с внешними системами
Обмене данными в фиксированных форматах
Работе с кодами, индексами, метками и флагами
🔤 Написание
🔹 n — количество символов (от 1 до 2000)
Пример:
🔄 Где используется
При проектировании таблиц с фиксированными кодами
В колонках с бинарными флагами (
Y/N,T/F,1/0)В отчётах с выравниванием по ширине
В случаях, где требуется точная длина поля (например, ID из 10 символов)
В PL/SQL переменных, типизированных как
CHAR
🧪 10 Примеров использования CHAR
1️⃣ Создание таблицы с CHAR
Все значения в code будут занимать ровно 5 символов.
2️⃣ Вставка данных в CHAR-колонку
В поле code будет храниться 'A12 ' (с двумя пробелами).
3️⃣ Сравнение с ЧАР-значением
Работает корректно, потому что Oracle автоматически подравнивает пробелы при сравнении.
4️⃣ Использование TRIM при отображении
Удаляет лишние пробелы в выводе.
5️⃣ PL/SQL переменная ЧАР
6️⃣ CHAR vs VARCHAR2 в плане памяти
CHAR всегда использует 10 байт, даже если строка из 3 символов.
7️⃣ ЧАР в выборке с форматированием
Явное выравнивание помогает видеть структуру поля.
8️⃣ Сравнение ЧАР и VARCHAR2
Может не сработать без TRIM — из-за лишних пробелов в CHAR.
9️⃣ Использование SUBSTR с ЧАР
Работает как с любой строкой.
🔟 Использование ЧАР в ограничениях
Ограничение на флаг Y/N, тип — CHAR.
🧩 CHAR в Oracle SQL. Заключение
CHAR — тип для тех случаев, когда важна фиксированная длина строк. Его преимущество — в предсказуемости и простоте форматирования, но будьте осторожны:
💡 Полезно помнить:
Oracle добавляет пробелы до нужной длины
Сравнения автоматически учитывают это (но могут ввести в заблуждение)
При частой работе с переменными длинами — лучше использовать
VARCHAR2