sql >> Databáze >  >> RDS >> Oracle

Jak zkontrolovat formát data vaší Oracle Session

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 SSFFRR 

Hodnota mého NLS_TERRITORY parametr je AMERICA 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-21

V 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 a NLS_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.


  1. Více dotazů provedených v jazyce Java v jednom příkazu

  2. VYBERTE PRO AKTUALIZACI pomocí SQL Server

  3. Jedinečné omezení tabulky SQLite a použití ON CONFLICT REPLACE

  4. Jak uzavřít mezeru ve zranitelnosti v PostgreSQL