Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como verificar o formato de data da sua sessão Oracle


Ao trabalhar com funções que retornam datas, o Oracle Database retorna essas datas com base no valor do NLS_DATE_FORMAT parâmetro.

Há também um NLS_TIMESTAMP_FORMAT parâmetro e um NLS_TIMESTAMP_TZ_FORMAT parâmetro, ambos com uma máscara de formato de data e hora que pode ser especificada separadamente.

Todos esses parâmetros têm seus valores padrão derivados do NLS_TERRITORY parâmetro (que, por padrão, é dependente do sistema operacional).

Verifique as configurações


Podemos consultar os V$NLS_PARAMETERS view para verificar os valores atuais desses parâmetros (e outros parâmetros NLS):
SELECT
    PARAMETER,
    VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
    'NLS_TERRITORY',
    'NLS_DATE_FORMAT',
    'NLS_TIMESTAMP_FORMAT',
    'NLS_TIMESTAMP_TZ_FORMAT'
    );

Resultado:
                 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    

O valor do meu NLS_TERRITORY parâmetro é AMERICA , e os vários parâmetros de data e hora usam o modelo de formato padrão para esse território.

Esses valores afetam como a data é formatada quando usamos determinadas funções. Por exemplo, aqui está um exemplo de uso de SYSDATE para retornar a data atual:
SELECT SYSDATE
FROM DUAL;

Resultado:
09-AUG-21

Podemos alterar o valor dos parâmetros NLS no escopo da sessão, se necessário. Consulte Como alterar o formato de data em sua sessão Oracle para obter exemplos.

Outros parâmetros NLS


Os V$NLS_PARAMETERS contém outros parâmetros além dos listados acima. Aqui está um exemplo de retorno de todas as linhas e colunas na exibição:
SELECT *
FROM V$NLS_PARAMETERS;

Resultado:
                 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 

Há também outros parâmetros NLS que não estão listados nesta visualização (como NLS_LANG , NLS_CREDIT e NLS_DEBIT ), mas eles só podem ser definidos como uma variável de ambiente (ou seja, não na sessão).

Os parâmetros NLS podem ser definidos em vários locais, como no nível do banco de dados, em um arquivo de parâmetro de inicialização, em variáveis ​​de ambiente, no nível de sessão e até mesmo em algumas funções. Cada um deles tem uma prioridade predeterminada em relação aos outros.

Os valores no escopo da sessão (conforme descrito neste artigo) substituem todos os outros escopos, exceto quando é explicitamente especificado como um argumento ao chamar uma função.

Consulte Métodos de configuração de parâmetros NLS e suas prioridades para obter uma tabela descrevendo a ordem de precedência que cada escopo tem em relação aos outros.

Consulte também Como verificar os valores dos parâmetros NLS, que abrange as várias exibições que você pode usar para retornar os valores de cada escopo.