Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Настройка поддержки национальных языков






 

Поддержка национальных языков («National Language Support - NLS», до версии СУБД Oracle 10g), или поддержка глобализации («Globalization Support», в версии СУБД Oracle 10g) позволяет хранить и обрабатывать в БД символьные данные различных мировых языков.

СУБД Oracle 10gпозволяет хранить в БД данные множества национальных языков, используя кодировку Unicode, либо специальные кодировки для отдельных языков. Эти кодировки в СУБД Oracle называются наборами символов (character set).

Символьные данные хранятся в БД в числовом виде, как коды символов, зависящие от выбранного набора символов. Во время доступа к ним происходит их преобразование в символьное представление.

Для реализации поддержки глобализации в СУБД Oracle 10gиспользуется библиотеки языково-независимых функций (NLS Runtime Library - NLSRTL), обеспечивающих корректную обработку символьных и языковых данных на стадии выполнения. В зависимости от того, какие регионально-зависимые (языковые и территориальные, locale-specific data) параметры установлены во время выполнения обработки символьных данных, эти функции обеспечивают соответствующую реакцию по обработке этих данных.

Одна БД может одновременно содержать данные разных языков. Естественно, для этого она должна использовать соответствующий набор символов. При этом в одной БД может использоваться два набора символов: основной набор символов БД (database character set) и национальный (national character set).

Основной набор символов БД используется для хранения в БД данных символьных типов CHAR, VARCHAR2, CLOB и LONG, для описания имен объектов БД, имен переменных и т.д., для ввода и хранения PL/SQL модулей.

Предопределенные наборы данных, которые сервер Oracle использует для поддержки различных языков, как правило, располагаются по адресу: $ORACLE_HOME/ocommon/nls/admin/data. В некоторых ОС может использоваться переменная вида ORA_NLS* (например, в SuSE Linux – ORA_NLS33), если расположение файлов языковой поддержки отлично от принятого по умолчанию. Содержимое этого каталога – файлы с расширением *.NLB. Это двоичные файлы, хранящие регионально-зависимые данные для всех поддерживаемых в данной версии СУБД Oracle территорий, языков, наборов символов.

Основной и национальный наборы символов устанавливаются при создании БД. В некоторых случаях (см. ниже) эти установки можно изменить позже с помощью команды ALTER DATABASE (NATIONAL) CHARACTER SET.

Каждый набор символов учитывает специфику языка, пунктуации, фонетические и идеографические особенности. Символ языков, основанные на фонетическом принципе (например, русский, английский), при кодировке в числовые коды требует немного места, и может быть закодирован семью или восемью битами, или байтом (поддерживается до 256 символов в наборе). Идеографические алфавиты (например, японского или китайского языков) могут содержать десятки тысяч символов. Кодировка подобных алфавитов требует более чем одного байта для хранения одного символа. Для работы с такими данными и используется национальный набор символов. Для хранения этих данных используются специальные типы данных (начинающиеся на «N»): NCHAR, NVARCHAR2, и NCLOB.

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

Разные наборы символов имеют разный состав. Но есть символы, которые присутствуют во всех наборах символов, используемых Oracle:

 

- Заглавные и строчные буквы английского алфавита (A-Z, a-z);

- Арабские цифры (0-9);

- Знаки пунктуации: % ` ' () * + -,. / \:; < > =! _ & ~ { } | ^? $ # @ " [ ]

- Управляющие символы: пробел, горизонтальная табуляция, вертикальная табуляция, перевод страницы.

 

Когда приложение клиента соединяется с БД, на сервере Oracle создается новая сессия. Созданная сессия инициализирует свое NLS-окружение, пытаясь сопоставить свои локальные NLS-установки и параметрами языковой поддержки экземпляра БД. Многие NLS-параметры могут быть изменены в процессе ее работы с помощью оператора ALTER SESSION. Эти изменения влияют только на текущий сеанс работы. Например, изменить язык для текущей сессии на русский:

 

ALTER SESSION SET NLS_LANGUAGE=RUSSIAN;

 

Как у сервера, так и у клиента Oracle, во время работы используются некоторые регионально-зависимые настройки. Они могут не совпадать.

Если сессия клиента настроена на отличающийся от установленного в БД набор символов, сервер СУБД Oracle 10gбудет конвертировать символьные данные автоматически, преобразуя их к набору, указанному пользовательской сессией.

 

Замечание:






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.