Как Используются Наборы символов? Проблемы, которые следует Избегать

Рубрика: DBCA - Создание Базы Данных

  • Сеть Oracle сравнивает настройку клиента NLS_LANG с набором символов на сервере.

  • Если нужно, преобразование происходит автоматически и незаметно для пользователя.

Как Используются Наборы символов?

Параметр NLS_LANG определяет схему кодировки символов клиентского терминала. Различные клиенты могут использовать различные схемы кодирования. Данные, которые передаются между клиентом и сервером, преобразуются автоматически между этими двумя схемами кодирования. Схема кодирования базы данных должна быть надмножеством, или эквивалентный, схемам кодирования всех клиентов. Преобразование происходит прозрачно для клиентского приложения.

Когда набор символов базы данных и клиентский набор символов являются одинаковыми, база данных предполагает, что данные, отправляемые или получаемые, имеют один и тот же набор символов и, таким образом, никакие проверки допустимости или преобразования не выполняются.

Преобразование набора символов может потребоваться в клиент-серверной среде, если клиентское приложение находится на отличной от сервера платформе и если платформы не используют одни и те же схемы кодировки символов. Символьные данные, которые передаются между клиентом и сервером, должны быть преобразованы между этими двумя схемами кодирования. Преобразование символов происходит автоматически и прозрачно для клиента через Сеть Oracle.

Проблемы, которые следует Избегать

Проблемы, которые следует Избегать

Преобразования не происходит, потому что кажется, что оно не требуется.

Проблема: Некорректные данные вводятся в базу данных.

Недопустимые данные обычно вводятся базу данных, когда параметры NLS_LANG не устанавливаются должным образом на клиенте. Значение NLS_LANG должно отразить кодирование входящих данных.

  • Когда параметры NLS_LANG устанавливаются должным образом, база данных может автоматически преобразовать входящие данные из клиентской операционной системы.

  • Когда параметры NLS_LANG не установлены должным образом, данные, вводимые в базу данных, не преобразовываются корректно.

Например, предположите, что набором символов базы данных является AL32UTF8, клиент является английской операционной системой Windows (кодовая страница: WE8MSWIN1252) и NLS_LANG на клиенте установлена в AL32UTF8. Данные, вводимые в базу данных, кодируются в WE8MSWIN1252 и не преобразовываются в данные AL32UTF8, потому что установка NLS_LANG на клиенте соответствует набору символов базы данных. Таким образом база данных Oracle предполагает, что преобразование не требуется, в результате чего недопустимые данные вводятся в БД.

Далее: Домашняя страница базы данных

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)