Pregunta

¿Dónde puedo consultar la configuración de mayúsculas y minúsculas actual de una base de datos Oracle?

He intentado buscar en v$database, nls_database_parameters, y mirando a través de los paquetes del sistema, pero ninguno de ellos parecen proporcionar la información que necesito ...

¿Fue útil?

Solución

En Oracle 10gR2:

SELECT  *
FROM    NLS_SESSION_PARAMETERS
WHERE   parameter IN ('NLS_COMP', 'NLS_SORT')

SQL> ALTER SESSION SET NLS_COMP = 'LINGUISTIC'
  2  /

Session altered
SQL> SELECT  COUNT(*)
  2  FROM    dual
  3  WHERE   'a' = 'A'
  4  /

  COUNT(*)
----------
         1

SQL> ALTER SESSION SET NLS_COMP = 'BINARY'
  2  /

Session altered
SQL> SELECT  COUNT(*)
  2  FROM    dual
  3  WHERE   'a' = 'A'
  4  /

  COUNT(*)
----------
         0

documentación :

  

NLS_COMP especifica el comportamiento de colación de la sesión de base de datos.

     

Los valores:

     
      
  • BINARY

         

    Normalmente, las comparaciones en la cláusula WHERE y en bloques PL/SQL es binario a no ser que se especifique la función NLSSORT.

  •   
  • LINGUISTIC

         

    Las comparaciones para todas las operaciones SQL en la cláusula WHERE y en bloques PL/SQL deben utilizar el tipo lingüística especificada en el parámetro NLS_SORT. Para mejorar el rendimiento, también puede definir un índice de lingüística en la columna para la que desea comparaciones lingüísticas.

  •   
  • ANSI

         

    Un ajuste de ANSI es para la compatibilidad hacia atrás; en general, se debe configurar NLS_COMP a LINGUISTIC

  •   

Otros consejos

Además de las respuestas ya dadas, tenga en cuenta que los cambios de sensibilidad a las mayúsculas en 11g - por ejemplo, consulte la documentación 11g re contraseñas.

Para Oracle 10gR2 (y posterior), los parámetros son NLS_COMP y NLS_SORT.

select * from v$nls_parameters where parameter in ('NLS_COMP','NLS_SORT');

(Estos parámetros se establecen a nivel de sesión. La configuración de una sesión se heredan del entorno de base de datos, a menos que exista establecer una variable de entorno del sistema operativo o una instrucción ALTER SESSION.)

Si desea "entre mayúsculas y minúsculas" clasificación y la coincidencia de cadenas, se pueden tratar los siguientes valores:

alter session set NLS_SORT=BINARY_CI;
alter session set NLS_COMP=LINGUISTIC;

No son los únicos ajustes de los parámetros, por supuesto. documentación de Oracle 10gR2:

10gR2 lingüística Clasificación y búsqueda de cadenas

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top