Při práci s funkcemi, které vracejí data, Oracle Database vrací tato data na základě hodnoty NLS_DATE_FORMAT
parametr.
K dispozici je také NLS_TIMESTAMP_FORMAT
parametr a NLS_TIMESTAMP_TZ_FORMAT
parametr, oba mají masku formátu data a času, kterou lze zadat samostatně.
Všechny tyto parametry mají své výchozí hodnoty odvozené z NLS_TERRITORY
parametr (který je ve výchozím nastavení závislý na operačním systému).
Zkontrolujte nastavení
Můžeme se dotázat na V$NLS_PARAMETERS
zobrazení pro kontrolu aktuálních hodnot těchto parametrů (a dalších parametrů NLS):
SELECT
PARAMETER,
VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
'NLS_TERRITORY',
'NLS_DATE_FORMAT',
'NLS_TIMESTAMP_FORMAT',
'NLS_TIMESTAMP_TZ_FORMAT'
);
Výsledek:
HODNOTA PARAMETRU ___________________________ _______________________________ NLS_TERRITORY AMERIKA NLS_DATE_FORMAT HMPHTZRR NLS_DATE_FORMAT DD-MON-RR SSFFRRHodnota mého
NLS_TERRITORY
parametr jeAMERICA
a různé parametry datetime používají výchozí model formátu pro toto území.Tyto hodnoty ovlivňují formátování data, když používáme určité funkce. Zde je například příklad použití
SYSDATE
vrátit aktuální datum:SELECT SYSDATE FROM DUAL;
Výsledek:
09-AUG-21V případě potřeby můžeme změnit hodnotu parametrů NLS v rozsahu relace. Příklady viz Jak změnit formát data v Oracle Session.
Další parametry NLS
V$NLS_PARAMETERS
obsahuje další parametry kromě výše uvedených. Zde je příklad vrácení všech řádků a sloupců v zobrazení:SELECT * FROM V$NLS_PARAMETERS;
Výsledek:
PARAMETER VALUE CON_ID __________________________ _______________________________ _________ NLS_LANGUAGE AMERICAN 3 NLS_TERRITORY AMERICA 3 NLS_CURRENCY $ 3 NLS_ISO_CURRENCY AMERICA 3 NLS_NUMERIC_CHARACTERS ., 3 NLS_CALENDAR GREGORIAN 3 NLS_DATE_FORMAT DD-MON-RR 3 NLS_DATE_LANGUAGE AMERICAN 3 NLS_CHARACTERSET AL32UTF8 3 NLS_SORT BINARY 3 NLS_TIME_FORMAT HH.MI.SSXFF 3 AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM 3 NLS_TIME_TZ_FORMAT HH .MI.SSXFF AM TZR 3 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR 3 NLS_DUAL_CURRENCY $ 3 NLS_NCHAR_CHARACTERSET AL16UTF16 3 NLS_COMP BINARY 3 NLS_ARTICSSEVLS_SEMAN>Existují také další parametry NLS, které nejsou uvedeny v tomto zobrazení (například
NLS_LANG
,NLS_CREDIT
aNLS_DEBIT
), ale lze je nastavit pouze jako proměnnou prostředí (tj. ne v relaci).Parametry NLS 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í. Každý z nich má ve vztahu k ostatním předem stanovenou prioritu.
Hodnoty v rozsahu relace (jak je uvedeno v tomto článku) přepíší všechny ostatní rozsahy, s výjimkou případů, kdy je to výslovně uvedeno jako argument při volání funkce.
Viz Metody nastavení parametrů NLS a jejich priority pro tabulku nastiňující pořadí priorit každého oboru ve vztahu k ostatním.
Podívejte se také na část Jak zkontrolovat hodnoty parametrů NLS, která pokrývá různá zobrazení, která můžete použít k vrácení hodnot z každého rozsahu.