Oracle
 sql >> Database >  >> RDS >> Oracle

Come controllare il formato della data della tua sessione Oracle

Quando si lavora con funzioni che restituiscono date, Oracle Database restituisce queste date in base al valore di NLS_DATE_FORMAT parametro.

C'è anche un NLS_TIMESTAMP_FORMAT parametro e un NLS_TIMESTAMP_TZ_FORMAT parametro, entrambi dotati di una maschera di formato data/ora che può essere specificata separatamente.

Tutti questi parametri hanno i loro valori predefiniti derivati ​​da NLS_TERRITORY parametro (che per impostazione predefinita dipende dal sistema operativo).

Controlla le impostazioni

Possiamo interrogare il V$NLS_PARAMETERS view per controllare i valori correnti di questi parametri (e altri parametri NLS):

SELECT
    PARAMETER,
    VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
    'NLS_TERRITORY',
    'NLS_DATE_FORMAT',
    'NLS_TIMESTAMP_FORMAT',
    'NLS_TIMESTAMP_TZ_FORMAT'
    );

Risultato:

                 PARAMETER                           VALUE 
__________________________ _______________________________ 
NLS_TERRITORY              AMERICA                         
NLS_DATE_FORMAT            DD-MON-RR                       
NLS_TIMESTAMP_FORMAT       DD-MON-RR HH.MI.SSXFF AM        
NLS_TIMESTAMP_TZ_FORMAT    DD-MON-RR HH.MI.SSXFF AM TZR    

Il valore del mio NLS_TERRITORY il parametro è AMERICA e i vari parametri datetime utilizzano il modello di formato predefinito per quel territorio.

Questi valori influiscono sulla formattazione della data quando utilizziamo determinate funzioni. Ad esempio, ecco un esempio di utilizzo di SYSDATE per restituire la data corrente:

SELECT SYSDATE
FROM DUAL;

Risultato:

09-AUG-21

Se necessario, possiamo modificare il valore dei parametri NLS nell'ambito della sessione. Vedi Come modificare il formato della data nella tua sessione Oracle per esempi.

Altri parametri NLS

Il V$NLS_PARAMETERS contiene altri parametri oltre a quelli sopra elencati. Ecco un esempio di restituzione di tutte le righe e colonne nella vista:

SELECT *
FROM V$NLS_PARAMETERS;

Risultato:

                 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 AM                          3 
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_LENGTH_SEMANTICS       BYTE                                    3 
NLS_NCHAR_CONV_EXCP        FALSE                                   3 

Ci sono anche altri parametri NLS che non sono elencati in questa vista (come NLS_LANG , NLS_CREDIT e NLS_DEBIT ), ma possono essere impostati solo come variabile d'ambiente (cioè non nella sessione).

I parametri NLS possono essere impostati in vari punti, come a livello di database, in un file di parametri di inizializzazione, in variabili di ambiente, a livello di sessione e persino all'interno di alcune funzioni. Ognuno di questi ha una priorità predeterminata rispetto agli altri.

I valori nell'ambito della sessione (come descritto in questo articolo) hanno la precedenza su tutti gli altri ambiti, tranne quando è esplicitamente specificato come argomento quando si chiama una funzione.

Vedi Metodi per impostare i parametri NLS e le loro priorità per una tabella che delinea l'ordine di precedenza che ogni ambito ha rispetto agli altri.

Vedi anche Come controllare i valori dei parametri NLS, che copre le varie viste che puoi usare per restituire i valori da ogni ambito.