sql >> Database >  >> RDS >> Oracle

Methoden voor het instellen van NLS-parameters en hun prioriteiten (Oracle Database)

Oracle Database bevat een aantal NLS-parameters (National Language Support) die het locale-specifieke gedrag op zowel de client als de server bepalen.

Deze NLS-parameters kunnen op verschillende plaatsen worden ingesteld, die elk een vooraf bepaalde voorrangsvolgorde hebben ten opzichte van de andere. De volgende tabel geeft een overzicht van deze methoden, evenals hun prioriteit ten opzichte van de andere.

Prioriteit Methode
1 (hoogste) Expliciet ingesteld in SQL-functies.

Voorbeeld:
TO_CHAR(SYSDATE, 'DD/MON/RR', 'nls_date_language = SPANISH')
2 Ingesteld door een ALTER SESSION uitspraak.

Voorbeeld:
ALTER SESSION SET NLS_TERRITORY = 'AUSTRALIA';
3 Instellen als omgevingsvariabele.

Voorbeeld:
% setenv NLS_SORT FRENCH
4 Opgegeven in het initialisatieparameterbestand.

Voorbeeld:
NLS_TERRITORY = "AMERICA"
5 (laagste) Standaardwaarde opgegeven toen de database werd gemaakt.

Voor alle duidelijkheid:instellingen met een hogere prioriteit hebben voorrang op instellingen met een lagere prioriteit. Dus het instellen van een NLS-parameter in een SQL-functie heeft voorrang op alle andere plaatsen waar die parameter is ingesteld.

Niet bij alle functies kunnen NLS-parameters op functieniveau worden ingesteld. De ALTER SESSION statement heeft de op één na hoogste prioriteit en is daarom de snelste/gemakkelijkste manier om een ​​NLS-parameter in te stellen in gevallen waarin de parameter niet hardgecodeerd is in de functie.

Voor een voorbeeld van het instellen van NLS-parameters op sessieniveau, zie Het datumformaat wijzigen in uw Oracle-sessie.

De waarden van de NLS-parameters controleren

U kunt de V$NLS_PARAMETERS . opvragen dynamische prestatieweergave om de huidige waarden van uw huidige NLS-parameters te controleren.

U kunt ook de sessie-, instantie- en database-NLS-parameters controleren door de volgende datadictionary-weergaven op te vragen:

  • NLS_SESSION_PARAMETERS toont de NLS-parameters en hun waarden voor de sessie die de weergave opvraagt. Het toont geen informatie over de tekenset.
  • NLS_INSTANCE_PARAMETERS toont de huidige NLS-instantieparameters die expliciet zijn ingesteld en de waarden van de NLS-instantieparameters.
  • NLS_DATABASE_PARAMETERS toont de waarden van de NLS-parameters voor de database. De waarden worden opgeslagen in de database.

Gebruikersapps kunnen ook de NLS-instellingen van de client opvragen met de OCINlsGetInfo() functie.

Zie Hoe de waarden van de NLS-parameters te controleren voor voorbeelden van het controleren van NLS-parameterwaarden.


  1. Hoe MySql-tabellen te importeren / herstellen met behulp van PHP

  2. Wat is de snelste manier om tijdstempels in Postgres in te korten tot 5 minuten?

  3. genereer_series() equivalent in MySQL

  4. Fix "Ten minste één van de argumenten voor COALESCE moet een expressie zijn die niet de NULL-constante is" in SQL Server