En Oracle, el NLS_LOWER()
la función devuelve su argumento con todas las letras en minúsculas.
Es similar al LOWER()
función, excepto que acepta un segundo argumento que le permite especificar la intercalación. La intercalación maneja requisitos lingüísticos especiales para conversiones de casos.
Sintaxis
La sintaxis es así:
NLS_LOWER(char [, 'nlsparam' ])
Donde ambos char
y 'nlsparam'
puede ser de cualquiera de los tipos de datos CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
o NCLOB
.
El 'nlsparam'
argumento puede tener la siguiente forma:
'NLS_SORT = sort'
Donde sort
es una colación con nombre.
Si omite este argumento, se utiliza la colación determinada de la función.
Ejemplo
Aquí hay un ejemplo simple para demostrarlo:
SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
FROM DUAL;
Resultado:
RESULT ________________ homer symptom
Lo mismo se aplica cuando el argumento usa mayúsculas y minúsculas:
SELECT NLS_LOWER('Homer Symptom') AS Result
FROM DUAL;
Resultado:
RESULT ________________ homer symptom
Y si el argumento ya está en minúsculas, entonces el resultado es el mismo que la entrada:
SELECT NLS_LOWER('homer symptom') AS Result
FROM DUAL;
Resultado:
RESULT ________________ homer symptom
Especifique una colación
Aquí hay un ejemplo que demuestra cómo especificar una intercalación puede alterar los resultados:
SELECT
NLS_LOWER('BALIQ') AS r1,
NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;
Resultado:
R1 R2 ________ ________ baliq balıq
Observe que la segunda columna usa una minúscula sin puntos i
carácter, que se adhiere al sistema de escritura azerbaiyano.
Tenga en cuenta que NLS_SORT
anula la intercalación del primer argumento solo en el momento de la ejecución. Por lo tanto, la siguiente instrucción devuelve la colación del primer argumento, no del segundo:
SELECT
COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
FROM DUAL;
Resultado:
COLLATION _________________ USING_NLS_COMP
El tema de las colaciones puede ser bastante complejo. Consulte el Apéndice C en la Guía de compatibilidad con la globalización de la base de datos de Oracle para conocer las reglas de determinación de intercalación y las reglas de derivación de intercalación para esta función.
Valores nulos
Pasando null
devuelve null
:
SELECT
NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLS_LOWER('BALIQ', null) AS r2,
NLS_LOWER(null, null) AS r3
FROM DUAL;
Resultado:
R1 R2 R3 _______ _______ _______ null null null
De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que null
ocurre como resultado de un SQL SELECT
declaración.
Sin embargo, puede usar SET NULL
para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null
debe ser devuelto.
Recuento de argumentos incorrecto
Llamando a NLS_LOWER()
sin pasar ningún argumento devuelve un error:
SELECT NLS_LOWER()
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT NLS_LOWER() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Y pasar demasiados argumentos da como resultado un error:
SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom') FROM DUAL Error at Command Line : 1 Column : 54 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: