sql >> Database >  >> RDS >> Oracle

Hoe u het datumformaat van uw Oracle-sessie kunt controleren

Bij het werken met functies die datums retourneren, retourneert Oracle Database deze datums op basis van de waarde van de NLS_DATE_FORMAT parameter.

Er is ook een NLS_TIMESTAMP_FORMAT parameter en een NLS_TIMESTAMP_TZ_FORMAT parameter, die beide een datum/tijd-formaatmasker hebben dat afzonderlijk kan worden opgegeven.

Al deze parameters hebben hun standaardwaarden afgeleid van de NLS_TERRITORY parameter (die standaard afhankelijk is van het besturingssysteem).

Controleer de instellingen

We kunnen de V$NLS_PARAMETERS . opvragen om de huidige waarden van deze parameters (en andere NLS-parameters) te controleren:

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

Resultaat:

 PARAMETERWAARDE __________________________ _______________________________ NLS_TERRITORY AMERIKA 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 

De waarde van mijn NLS_TERRITORY parameter is AMERICA , en de verschillende datetime-parameters gebruiken het standaardformaatmodel voor dat gebied.

Deze waarden beïnvloeden hoe de datum wordt opgemaakt wanneer we bepaalde functies gebruiken. Hier is bijvoorbeeld een voorbeeld van het gebruik van SYSDATE om de huidige datum terug te geven:

SELECT SYSDATE
FROM DUAL; 

Resultaat:

09-AUG-21

Indien nodig kunnen we de waarde van de NLS-parameters in het sessiebereik wijzigen. Zie Hoe u de datumnotatie in uw Oracle-sessie kunt wijzigen voor voorbeelden.

Andere NLS-parameters

De V$NLS_PARAMETERS bevat naast de hierboven vermelde parameters nog andere parameters. Hier is een voorbeeld van het retourneren van alle rijen en kolommen in de weergave:

SELECT *
FROM V$NLS_PARAMETERS; 

Resultaat:

 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_SEMANTICSN BYTE 3 NLS_EXCPR CHARTE 3 NLS_EX 

Er zijn ook andere NLS-parameters die niet in deze weergave worden vermeld (zoals NLS_LANG , NLS_CREDIT , en NLS_DEBIT ), maar ze kunnen alleen worden ingesteld als een omgevingsvariabele (d.w.z. niet in de sessie).

NLS-parameters kunnen op verschillende plaatsen worden ingesteld, zoals op databaseniveau, in een initialisatieparameterbestand, in omgevingsvariabelen, op sessieniveau en zelfs binnen sommige functies. Elk van deze heeft een vooraf bepaalde prioriteit ten opzichte van de andere.

De waarden in het sessiebereik (zoals beschreven in dit artikel) overschrijven alle andere bereiken, behalve wanneer het expliciet is opgegeven als argument bij het aanroepen van een functie.

Zie Methoden voor het instellen van NLS-parameters en hun prioriteiten voor een tabel met de voorrangsvolgorde die elk bereik heeft in relatie tot de andere.

Zie ook Hoe u de waarden van de NLS-parameters kunt controleren, waarin de verschillende weergaven worden beschreven die u kunt gebruiken om de waarden van elk bereik te retourneren.


  1. Rails 3 ActiveRecord:Sorteren op telling op associatie

  2. Na een impasse met één transactie in alle SQL Server-versies

  3. Exporteer tabel naar bestand met kolomkoppen (kolomnamen) met behulp van het bcp-hulpprogramma en SQL Server 2008

  4. Patchbeleid