V databázi Oracle určují parametry NLS (National Language Support) chování specifické pro národní prostředí na klientovi i na serveru.
Tyto parametry lze nastavit na různých místech, například na úrovni databáze, v souboru inicializačních parametrů, v proměnných prostředí, na úrovni relace a dokonce i v rámci některých funkcí.
Hodnotu parametrů NLS můžete zkontrolovat pomocí následujících zobrazení.
Zobrazení dynamického výkonu NLS
Dynamická zobrazení výkonu jsou speciální zobrazení, která jsou průběžně aktualizována, když je databáze otevřená a používána. Tato zobrazení obsahují data o velkém množství věcí, včetně využití a alokace paměti, stavů souborů, průběhu úloh a úkolů, statistik a metrik, provádění SQL a také parametry systému a relace.
Následující dynamické zobrazení výkonu lze použít k vrácení informací o parametrech NLS:
V$NLS_PARAMETERS
zobrazuje aktuální hodnoty různých parametrů NLS.V$NLS_VALID_VALUES
uvádí platné hodnoty, na které lze nastavit různé parametry NLS.
Zde jsou příklady každého zobrazení.
V$NLS_PARAMETERS
Zobrazit
Zde je příklad dotazu na V$NLS_PARAMETERS
zobrazit v mém systému:
SELECT * FROM V$NLS_PARAMETERS;
Výsledek:
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 AL16LENUTF16 3 FTICPLS_COMP BCONGARVINA3 FTICPLS_COMP NCONGARCH_MANN
V$NLS_VALID_VALUES
Zobrazit
V$NLS_VALID_VALUES
view uvádí platné hodnoty, na které lze nastavit následující parametry NLS:
NLS_LANGUAGE
NLS_SORT
NLS_TERRITORY
NLS_CHARACTERSET
Abyste měli představu o typu dat obsažených v tomto zobrazení, zde je dotaz, který vrací prvních 10 řádků:
SELECT * FROM V$NLS_VALID_VALUES
FETCH FIRST 10 ROWS ONLY;
Výsledek:
Hodnota parametru Isdeprecated Con_id ____________ __________________ _______________ _________ Jazyk Americký falš 0 Jazyk Německý francouzský francouzský 0 Jazyk Kanadský francouzský francouzský 0 jazyk Španělský 0 jazyk Italský falš NEPRAVDA 0
Tyto hodnoty lze tedy použít všude tam, kde parametr NLS přijímá hodnotu jazyka. Mohli bychom například provést následující:
ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
Což nastavuje NLS_LANGUAGE
parametr na AMERICAN
. Chcete-li ji nastavit na jinou hodnotu, můžeme zkontrolovat V$NLS_VALID_VALUES
zobrazit, které jazyky jsou přijímány.
Zobrazení datového slovníku NLS
Parametry NLS relace, instance a databáze můžete zkontrolovat dotazem na následující zobrazení datového slovníku:
NLS_SESSION_PARAMETERS
zobrazuje parametry NLS a jejich hodnoty pro relaci, která dotazuje pohled. Nezobrazuje informace o znakové sadě.NLS_INSTANCE_PARAMETERS
zobrazuje aktuální parametry instance NLS, které byly explicitně nastaveny, a hodnoty parametrů instance NLS.NLS_DATABASE_PARAMETERS
zobrazuje hodnoty parametrů NLS pro databázi. Hodnoty jsou uloženy v databázi.
Jak již bylo zmíněno, parametry NLS lze nastavit na různých místech. Každý rozsah může obsahovat jiné hodnoty pro daný parametr NLS než jiný rozsah. Výše uvedená zobrazení datového slovníku umožňují dotazovat se na hodnotu každého oboru. Parametry relace NLS přepíší parametry instance NLS. A parametry instance NLS přepíší parametry NLS pro databázi.
Viz Metody nastavení parametrů NLS a jejich priority, kde je uvedena tabulka, která uvádí pořadí předností, které má každý obor ve vztahu k ostatním.
Zde je to, co dostanu, když se dotazuji na každé z těchto zobrazení v mém systému:
SELECT * FROM NLS_SESSION_PARAMETERS;
SELECT * FROM NLS_INSTANCE_PARAMETERS;
SELECT * FROM NLS_DATABASE_PARAMETERS;
Výsledek:
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 Vybráno 17 řádků. 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 AL16UTFARACTERS NLS_CH ET AL32UTF8 NLS_ISO_CURRENCY AMERIKA NLS_CURRENCY $ NLS_TERRITORY AMERIKA NLS_LANGUAGE AMERICAN 20 vybraných řádků.
Použijte NLS_LANGUAGE
parametr například. Toto je nastaveno na AMERICAN
na úrovni databáze i instance (jak je vidět z NLS_DATABASE_PARAMETERS
a NLS_INSTANCWE_PARAMETERS
zobrazení). Ale parametr relace (který lze vidět v NLS_SESSION_PARAMETERS
view) používá ENGLISH
, která přepíše další dvě nastavení.