sql >> Base de Datos >  >> RDS >> Oracle

Cómo verificar los valores de los parámetros NLS en la base de datos Oracle

En Oracle Database, los parámetros NLS (Soporte de idioma nacional) determinan el comportamiento específico de la configuración regional tanto en el cliente como en el servidor.

Estos parámetros se pueden configurar en varios lugares, como a nivel de base de datos, en un archivo de parámetros de inicialización, en variables de entorno, a nivel de sesión e incluso dentro de algunas funciones.

Puede verificar el valor de los parámetros NLS con las siguientes vistas.

Vistas de rendimiento dinámico de NLS

Las vistas de rendimiento dinámico son vistas especiales que se actualizan continuamente mientras una base de datos está abierta y en uso. Estas vistas contienen datos sobre una gran cantidad de cosas, incluido el uso y la asignación de memoria, estados de archivos, progreso de trabajos y tareas, estadísticas y métricas, ejecución de SQL, así como parámetros del sistema y de la sesión.

Las siguientes vistas de rendimiento dinámico se pueden utilizar para devolver información sobre los parámetros de NLS:

  • V$NLS_PARAMETERS muestra los valores actuales de varios parámetros NLS.
  • V$NLS_VALID_VALUES enumera los valores válidos en los que se pueden establecer varios parámetros NLS.

Estos son ejemplos de cada vista.

El V$NLS_PARAMETERS Ver

Este es un ejemplo de consulta de V$NLS_PARAMETERS ver en mi sistema:

SELECT * FROM V$NLS_PARAMETERS; 

Resultado:

 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 3 NLS_COMP BINARY 3 NLS_LENGTH_SEMANTICS BYTE 3 NLS_3CPEl V$NLS_VALID_VALUES Ver 

El V$NLS_VALID_VALUES view enumera los valores válidos en los que se pueden establecer los siguientes parámetros NLS:

  • NLS_LANGUAGE
  • NLS_SORT
  • NLS_TERRITORY
  • NLS_CHARACTERSET

Para darle una idea del tipo de datos contenidos en esta vista, aquí hay una consulta que devuelve las 10 filas principales:

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

Resultado:

 EL VALOR DEL PARÁMETRO ESTÁ DESAPROBADO CON_ID ____________ __________________ _______________ _________ IDIOMA AMERICANO FALSO 0 IDIOMA ALEMÁN FALSO 0 IDIOMA FRANCÉS FALSO 0 IDIOMA FRANCÉS CANADIENSE FALSO 0 IDIOMA ESPAÑOL FALSO 0 IDIOMA ITALIANO FALSO 0 IDIOMA HOLANDÉS FALSO 0 IDIOMA SUECO FALSO 0 IDIOMA DANÉS 0 IDIOMA NORUEGO FALSO FALSO 0 

Por lo tanto, estos valores se pueden usar siempre que un parámetro NLS acepte un valor de idioma. Por ejemplo, podríamos hacer lo siguiente:

ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN'; 

Que establece el NLS_LANGUAGE parámetro a AMERICAN . Para establecerlo en un valor diferente, podemos verificar el V$NLS_VALID_VALUES ver para ver qué idiomas se aceptan.

Vistas del diccionario de datos NLS

Puede comprobar los parámetros NLS de la sesión, la instancia y la base de datos consultando las siguientes vistas del diccionario de datos:

  • NLS_SESSION_PARAMETERS muestra los parámetros NLS y sus valores para la sesión que consulta la vista. No muestra información sobre el juego de caracteres.
  • NLS_INSTANCE_PARAMETERS muestra los parámetros de instancia de NLS actuales que se han establecido explícitamente y los valores de los parámetros de instancia de NLS.
  • NLS_DATABASE_PARAMETERS muestra los valores de los parámetros NLS para la base de datos. Los valores se almacenan en la base de datos.

Como se mencionó, los parámetros NLS se pueden configurar en varios lugares. Cada ámbito puede contener valores diferentes para un parámetro NLS dado que otro ámbito. Las vistas del diccionario de datos anteriores le permiten consultar cada alcance por su valor. Los parámetros de la sesión de NLS anulan los parámetros de la instancia de NLS. Y los parámetros de instancia de NLS anulan los parámetros de NLS para la base de datos.

Consulte Métodos para establecer parámetros NLS y sus prioridades para ver una tabla que describe el orden de precedencia que tiene cada ámbito en relación con los demás.

Esto es lo que obtengo cuando consulto cada una de estas vistas en mi sistema:

SELECT * FROM NLS_SESSION_PARAMETERS;
SELECT * FROM NLS_INSTANCE_PARAMETERS;
SELECT * FROM NLS_DATABASE_PARAMETERS; 

Resultado:

 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 BINARIO NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSO 17 filas seleccionadas. 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_CHARACTERS ET AL32UTF8 NLS_ISO_CURRENCY AMERICA NLS_CURRENCY $ NLS_TERRITORY AMERICA NLS_LANGUAGE AMERICAN 20 filas seleccionadas. 

Toma el NLS_LANGUAGE parámetro por ejemplo. Esto se establece en AMERICAN tanto a nivel de base de datos como de instancia (como se puede ver en NLS_DATABASE_PARAMETERS y NLS_INSTANCWE_PARAMETERS puntos de vista). Pero el parámetro de sesión (que se puede ver en NLS_SESSION_PARAMETERS view) usa ENGLISH , que anula las otras dos configuraciones.