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

Sådan kontrolleres værdierne af NLS-parametrene i Oracle-databasen

I Oracle Database bestemmer NLS (National Language Support)-parametrene den lokalespecifikke adfærd på både klienten og serveren.

Disse parametre kan indstilles forskellige steder, såsom på databaseniveau, i en initialiseringsparameterfil, i miljøvariabler, på sessionsniveau og endda inden for nogle funktioner.

Du kan kontrollere værdien af ​​NLS-parametrene med følgende visninger.

NLS Dynamic Performance Views

Dynamiske ydeevnevisninger er specielle visninger, der løbende opdateres, mens en database er åben og i brug. Disse visninger indeholder data om en lang række ting, herunder hukommelsesbrug og -allokering, filtilstande, fremskridt for job og opgaver, statistik og metrikker, SQL-udførelse samt system- og sessionsparametre.

Følgende dynamiske ydeevnevisninger kan bruges til at returnere oplysninger om NLS-parametre:

  • V$NLS_PARAMETERS viser aktuelle værdier for forskellige NLS-parametre.
  • V$NLS_VALID_VALUES viser de gyldige værdier, som forskellige NLS-parametre kan indstilles til.

Her er eksempler på hver visning.

V$NLS_PARAMETERS Vis

Her er et eksempel på forespørgsel til V$NLS_PARAMETERS se på mit system:

VÆLG * FRA V$NLS_PARAMETERS; 

Resultat:

 PARAMETER VALUE CON_ID __________________________ _________________________________ _________ NLS_LANGUAGE ENGLISH 3 NLS_TERRITORY AUSTRALIA 3 NLS_CURRENCY $ 3 NLS_ISO_CURRENCY AUSTRALIA 3 NLS_NUMERIC_CHARACTERS ., 3 NLS_CALENDAR GREGORIAN 3 NLS_DATE_FORMAT DD/MON/RR 3 NLS_DATE_LANGUAGE ENGLISH 3 NLS_CHARACTERSET AL32UTF8 3 NLS_SORT BINARY 3 NLS_TIME_FORMAT HH12:MI:SSXFF AM 3 NLS_TIMESTAMP_FORMAT DD/MON/RR HH12:MI:SSXFF AM 3 N LS_TIME_TZ_FORMAT HH12:MI:SSXFF AM TZR 3 NLS_TIMESTAMP_TZ_FORMAT DD/MON/RR HH12:MI:SSXFF AM TZR 3 NLS_DUAL_CURRENCY $ 3 NLS_NCHAR_CHARACTERSET AL16UTF16 BINA 3 NLSTIENG_COMP_3NLSTHAN_COMP_3 NLLCSTHN 

V$NLS_VALID_VALUES Vis

V$NLS_VALID_VALUES view viser de gyldige værdier, som følgende NLS-parametre kan indstilles til:

  • NLS_LANGUAGE
  • NLS_SORT
  • NLS_TERRITORY
  • NLS_CHARACTERSET

For at give dig en idé om den type data, der er indeholdt i denne visning, er her en forespørgsel, der returnerer de øverste 10 rækker:

VÆLG * FRA V$NLS_VALID_VALUESFETCH KUN FØRSTE 10 RÆKKER; 

Resultat:

meget FALSK 0

Så disse værdier kan bruges overalt, hvor en NLS-parameter accepterer en sprogværdi. For eksempel kunne vi gøre følgende:

ALTER SESSION SET NLS_LANGUAGE ='AMERICAN'; 

Hvilket indstiller NLS_LANGUAGE parameter til AMERICAN . For at indstille den til en anden værdi, kan vi kontrollere V$NLS_VALID_VALUES se, hvilke sprog der accepteres.

NLS Data Dictionary Views

Du kan kontrollere sessionen, forekomsten og databasens NLS-parametre ved at forespørge i følgende dataordbogsvisninger:

  • NLS_SESSION_PARAMETERS viser NLS-parametrene og deres værdier for den session, der forespørger på visningen. Den viser ikke oplysninger om tegnsættet.
  • NLS_INSTANCE_PARAMETERS viser de aktuelle NLS-forekomstparametre, der eksplicit er blevet indstillet, og værdierne for NLS-forekomstparametrene.
  • NLS_DATABASE_PARAMETERS viser værdierne af NLS-parametrene for databasen. Værdierne gemmes i databasen.

Som nævnt kan NLS-parametre indstilles forskellige steder. Hvert omfang kan indeholde forskellige værdier for en given NLS-parameter end et andet omfang. Ovenstående dataordbogsvisninger giver dig mulighed for at forespørge på hvert omfang for dets værdi. NLS-sessionsparametre tilsidesætter NLS-forekomstparametrene. Og NLS-instansparametrene tilsidesætter NLS-parametrene for databasen.

Se Metoder til indstilling af NLS-parametre og deres prioriteter for en tabel, der skitserer prioritetsrækkefølgen, som hvert scope har i forhold til de andre.

Her er, hvad jeg får, når jeg forespørger på hver af disse visninger på mit system:

VÆLG * FRA NLS_SESSION_PARAMETERS;VÆLG * FRA NLS_INSTANCE_PARAMETERS;VÆLG * FRA NLS_DATABASE_PARAMETERS; 

Resultat:

 PARAMETER VALUE __________________________ _________________________________ NLS_LANGUAGE ENGLISH NLS_TERRITORY AUSTRALIA NLS_CURRENCY $ NLS_ISO_CURRENCY AUSTRALIA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD/MON/RR NLS_DATE_LANGUAGE ENGLISH NLS_SORT BINARY NLS_TIME_FORMAT HH12:MI:SSXFF AM NLS_TIMESTAMP_FORMAT DD/MON/RR HH12:MI:SSXFF AM NLS_TIME_TZ_FORMAT HH12:MI:SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT DD/MON/RR HH12:MI:SSXFF AM TZR NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE 17 rækker valgt. PARAMETER VALUE __________________________ ___________ NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_SORT NLS_DATE_LANGUAGE NLS_DATE_FORMAT NLS_CURRENCY NLS_NUMERIC_CHARACTERS NLS_ISO_CURRENCY NLS_CALENDAR NLS_TIME_FORMAT NLS_TIMESTAMP_FORMAT NLS_TIME_TZ_FORMAT NLS_TIMESTAMP_TZ_FORMAT NLS_DUAL_CURRENCY NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE 17 rows selected. PARAMETER VALUE __________________________ _______________________________ NLS_RDBMS_VERSION 19.0.0.0.0 NLS_NCHAR_CONV_EXCP FALSE NLS_LENGTH_SEMANTICS BYTE NLS_COMP BINARY NLS_DUAL_CURRENCY $ NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_SORT BINARY NLS_DATE_LANGUAGE AMERICAN NLS_DATE_FORMAT DD-MON-RR NLS_CALENDAR GREGORIAN NLS_NUMERIC_CHARACTERS ., NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_UTF16 NLS ET AL32UTF8 NLS_ISO_CURRENCY AMERICA NLS_CURRENCY $ NLS_TERRITORY AMERICA NLS_LANGUAGE AMERICAN 20 rækker valgt. 

Tag NLS_LANGUAGE parameter for eksempel. Dette er indstillet til AMERICAN på både database- og instansniveau (som det kan ses fra NLS_DATABASE_PARAMETERS og NLS_INSTANCWE_PARAMETERS visninger). Men sessionsparameteren (som kan ses i NLS_SESSION_PARAMETERS view) bruger ENGLISH , som tilsidesætter de to andre indstillinger.


  1. Hvordan bestemmer man antallet af dage i en måned i SQL Server?

  2. Sådan rettes forkert strengværdi i MySQL

  3. SQL-rækkefølge som nummer

  4. Definering af en en-til-en relation i SQL Server