В Oracle Database параметрите NLS (Поддръжка на национален език) определят специфичното за локала поведение както на клиента, така и на сървъра.
Тези параметри могат да бъдат зададени на различни места, като например на ниво база данни, във файл с параметри за инициализация, в променливи на средата, на ниво сесия и дори в рамките на някои функции.
Можете да проверите стойността на NLS параметрите със следните изгледи.
NLS динамични изгледи за производителност
Динамичните изгледи на производителност са специални изгледи, които се актуализират непрекъснато, докато базата данни е отворена и се използва. Тези изгледи съдържат данни за голям брой неща, включително използване и разпределение на паметта, състояния на файловете, напредък на заданията и задачите, статистически данни и показатели, изпълнение на SQL, както и параметри на системата и сесията.
Следните динамични изгледи за производителност могат да се използват за връщане на информация за NLS параметри:
V$NLS_PARAMETERS
показва текущите стойности на различни NLS параметри.V$NLS_VALID_VALUES
изброява валидните стойности, на които могат да бъдат зададени различни NLS параметри.
Ето примери за всеки изглед.
V$NLS_PARAMETERS
Преглед
Ето пример за заявка на V$NLS_PARAMETERS
преглед на моята система:
SELECT * FROM V$NLS_PARAMETERS;
Резултат:
PARAMETER VALUE CON_ID __________________________ _________________________________ _________ NLS_LANGUAGE ENGLISH 3 NLS_TERRITORY AUSTRALIA 3 NLS_CURRENCY $ 3 NLS_ISO_CURRENCY AUSTRALIA 3 NLS_NUMERIC_CHARACTERS ., 3 NLS_CALENDAR GREGORIAN 3 NLS_DATE_FORMAT DD/MON/RR 3 NLS_DATE_LANGUAGE ENGLISH 3 NLS_CHARACTERSET AL32UTF8 3 NLS_SORT BINARY 3 NLS_TIME_FORMAT HH12:MI:SSXFF AM 3 NLS_TIMESTAMP_FORMAT DD/MON/RR HH12:MI:SSXFF AM 3 N LS_TIME_TZ_FORMAT HH12:MI:SSXFF AM TZR 3 NLS_TIMESTAMP_TZ_FORMAT DD/MON/RR HH12:MI:SSXFF AM TZR 3 NLS_DUAL_CURRENCY $ 3 NLS_NCHAR_CHARACTERSET AL16UTF_CHARACTERSET AL16UTF_CHARACTERSET AL16UTF_CHARACTERSET AL16UTF_CHARACTERSET AL16UTF_CHARACTERSET AL16UTF_CHARACTERSET AL16UTF_CHARACTERSET AL16UTF_CHARACTERSET AL16UTF_16 BGNSENG_3
V$NLS_VALID_VALUES
Преглед
V$NLS_VALID_VALUES
view изброява валидните стойности, на които могат да бъдат зададени следните NLS параметри:
NLS_LANGUAGE
NLS_SORT
NLS_TERRITORY
NLS_CHARACTERSET
За да ви даде представа за типа данни, съдържащи се в този изглед, ето заявка, която връща първите 10 реда:
SELECT * FROM V$NLS_VALID_VALUES
FETCH FIRST 10 ROWS ONLY;
Резултат:
Стойност на параметъра isdeprecated con_id ____________ __________________ _______________ _________ език американски невяр FALSE 0
Така че тези стойности могат да се използват навсякъде, когато NLS параметър приема езикова стойност. Например, можем да направим следното:
ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
Което задава NLS_LANGUAGE
параметър към AMERICAN
. За да го зададем на различна стойност, можем да проверим V$NLS_VALID_VALUES
прегледайте, за да видите кои езици се приемат.
Изгледи на речник на NLS данни
Можете да проверите NLS параметрите на сесията, екземпляра и базата данни, като потърсите следните изгледи на речника с данни:
NLS_SESSION_PARAMETERS
показва NLS параметрите и техните стойности за сесията, която отправя заявка към изгледа. Не показва информация за набора от знаци.NLS_INSTANCE_PARAMETERS
показва текущите параметри на NLS екземпляр, които са били изрично зададени, и стойностите на параметрите на NLS екземпляр.NLS_DATABASE_PARAMETERS
показва стойностите на NLS параметрите за базата данни. Стойностите се съхраняват в базата данни.
Както споменахме, NLS параметрите могат да се задават на различни места. Всеки обхват може да съдържа различни стойности за даден NLS параметър от друг обхват. Горните изгледи на речника на данни ви позволяват да запитвате всеки обхват за неговата стойност. Параметрите на NLS сесията отменят параметрите на NLS екземпляр. И параметрите на NLS екземпляр отменят параметрите на NLS за базата данни.
Вижте Методи за задаване на NLS параметри и техните приоритети за таблица, очертаваща порядъка на приоритет, който всеки обхват има спрямо останалите.
Ето какво получавам, когато запитам всеки от тези изгледи в моята система:
SELECT * FROM NLS_SESSION_PARAMETERS;
SELECT * FROM NLS_INSTANCE_PARAMETERS;
SELECT * FROM NLS_DATABASE_PARAMETERS;
Резултат:
PARAMETER VALUE __________________________ _________________________________ NLS_LANGUAGE ENGLISH NLS_TERRITORY AUSTRALIA NLS_CURRENCY $ NLS_ISO_CURRENCY AUSTRALIA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD/MON/RR NLS_DATE_LANGUAGE ENGLISH NLS_SORT BINARY NLS_TIME_FORMAT HH12:MI:SSXFF AM NLS_TIMESTAMP_FORMAT DD/MON/RR HH12:MI:SSXFF AM NLS_TIME_TZ_FORMAT HH12:MI:SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT DD/MON/RR HH12:MI:SSXFF AM TZR NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE Избрани са 17 реда. PARAMETER VALUE __________________________ ___________ NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_SORT NLS_DATE_LANGUAGE NLS_DATE_FORMAT NLS_CURRENCY NLS_NUMERIC_CHARACTERS NLS_ISO_CURRENCY NLS_CALENDAR NLS_TIME_FORMAT NLS_TIMESTAMP_FORMAT NLS_TIME_TZ_FORMAT NLS_TIMESTAMP_TZ_FORMAT NLS_DUAL_CURRENCY NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE 17 rows selected. PARAMETER VALUE __________________________ _______________________________ NLS_RDBMS_VERSION 19.0.0.0.0 NLS_NCHAR_CONV_EXCP FALSE NLS_LENGTH_SEMANTICS BYTE NLS_COMP BINARY NLS_DUAL_CURRENCY $ NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_SORT BINARY NLS_DATE_LANGUAGE AMERICAN NLS_DATE_FORMAT DD-MON-RR NLS_CALENDAR GREGORIAN NLS_NUMERIC_CHARACTERS ., NLS_NCHAR_CHARACTERSET AL16UTFCHARACTERS NLS_CALENDAR ET AL32UTF8 NLS_ISO_CURRENCY AMERICA NLS_CURRENCY $ NLS_TERRITORY AMERICA NLS_LANGUAGE AMERICAN Избрани са 20 реда.
Вземете NLS_LANGUAGE
параметър например. Това е зададено на AMERICAN
както на ниво база данни, така и на ниво потребителски модел (както може да се види от NLS_DATABASE_PARAMETERS
и NLS_INSTANCWE_PARAMETERS
изгледи). Но параметърът на сесията (който може да се види в NLS_SESSION_PARAMETERS
view) използва ENGLISH
, което отменя другите две настройки.