sql >> Databasteknik >  >> RDS >> Oracle

Hur man kontrollerar värdena för NLS-parametrarna i Oracle Database

I Oracle Database bestämmer NLS (National Language Support) parametrar det lokala specifika beteendet på både klienten och servern.

Dessa parametrar kan ställas in på olika ställen, till exempel på databasnivå, i en initialiseringsparameterfil, i miljövariabler, på sessionsnivå och även inom vissa funktioner.

Du kan kontrollera värdet på NLS-parametrarna med följande vyer.

NLS Dynamic Performance Views

Dynamiska prestandavyer är speciella vyer som uppdateras kontinuerligt medan en databas är öppen och används. Dessa vyer innehåller data om ett stort antal saker, inklusive minnesanvändning och allokering, filtillstånd, framsteg för jobb och uppgifter, statistik och mätvärden, SQL-exekvering, såväl som system- och sessionsparametrar.

Följande dynamiska prestandavyer kan användas för att returnera information om NLS-parametrar:

  • V$NLS_PARAMETERS visar aktuella värden för olika NLS-parametrar.
  • V$NLS_VALID_VALUES listar de giltiga värden som olika NLS-parametrar kan ställas in på.

Här är exempel på varje vy.

V$NLS_PARAMETERS Visa

Här är ett exempel på hur du frågar V$NLS_PARAMETERS visa på mitt system:

SELECT * FROM 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 BINARY_DUAL_CURRENCY 

V$NLS_VALID_VALUES Visa

V$NLS_VALID_VALUES view listar de giltiga värden som följande NLS-parametrar kan ställas in på:

  • NLS_LANGUAGE
  • NLS_SORT
  • NLS_TERRITORY
  • NLS_CHARACTERSET

För att ge dig en uppfattning om vilken typ av data som finns i den här vyn, här är en fråga som returnerar de 10 översta raderna:

SELECT * FROM V$NLS_VALID_VALUES
FETCH FIRST 10 ROWS ONLY; 

Resultat:

 Parametervärde ISDECATED CON_ID ____________ __________________ _______________ _________ Språk American False 0 Language German Falsk 0 Språk fransk Falsk 0 Språk kanadensiska franska Falsk 0 Språk Spanska Falsk 0 Språk italiensk falsk 0 Språk Dutch Falsk 0 Språk Svenska Falsk 0 Språk Norska Falsk 0 Språk Danisk FALSK 0 

Så dessa värden kan användas varhelst en NLS-parameter accepterar ett språkvärde. Vi kan till exempel göra följande:

ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN'; 

Som ställer in NLS_LANGUAGE parameter till AMERICAN . För att ställa in det till ett annat värde kan vi kontrollera V$NLS_VALID_VALUES visa för att se vilka språk som accepteras.

NLS Data Dictionary Views

Du kan kontrollera sessions-, instans- och databas NLS-parametrarna genom att fråga i följande dataordboksvyer:

  • NLS_SESSION_PARAMETERS visar NLS-parametrarna och deras värden för sessionen som frågar i vyn. Den visar inte information om teckenuppsättningen.
  • NLS_INSTANCE_PARAMETERS visar de aktuella NLS-instansparametrarna som har ställts in explicit och värdena för NLS-instansparametrarna.
  • NLS_DATABASE_PARAMETERS visar värdena för NLS-parametrarna för databasen. Värdena lagras i databasen.

Som nämnts kan NLS-parametrar ställas in på olika ställen. Varje scope kan innehålla olika värden för en given NLS-parameter än ett annat scope. Ovanstående dataordboksvyer låter dig fråga varje omfattning för dess värde. NLS-sessionsparametrar åsidosätter NLS-instansparametrarna. Och NLS-instansparametrarna åsidosätter NLS-parametrarna för databasen.

Se Metoder för att ställa in NLS-parametrar och deras prioriteringar för en tabell som beskriver prioritetsordningen varje scope har i förhållande till de andra.

Det här är vad jag får när jag frågar var och en av dessa vyer på mitt system:

SELECT * FROM NLS_SESSION_PARAMETERS;
SELECT * FROM NLS_INSTANCE_PARAMETERS;
SELECT * FROM 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 rader markerade. 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 ET AL32UTF8 NLS_ISO_CURRENCY AMERICA NLS_CURRENCY $ NLS_TERRITORY AMERICA NLS_LANGUAGE AMERICAN 20 rader valda. 

Ta NLS_LANGUAGE parameter till exempel. Detta är inställt på AMERICAN på både databas- och instansnivå (som kan ses från NLS_DATABASE_PARAMETERS och NLS_INSTANCWE_PARAMETERS visningar). Men sessionsparametern (som kan ses i NLS_SESSION_PARAMETERS view) använder ENGLISH , som åsidosätter de andra två inställningarna.


  1. Hur man automatiserar SQL-databasunderhållsuppgifter med SQLCMD

  2. Hur pg_typeof() fungerar i PostgreSQL

  3. Postgres - Funktion för att returnera skärningspunkten mellan 2 ARRAY?

  4. Hur kan jag ta bort dubbletter av rader i en tabell