En Oracle, NLS_UPPER()
la función devuelve su argumento con todas las letras en mayúsculas.
Es similar a UPPER()
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_UPPER(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_UPPER('coffee time') AS Result
FROM DUAL;
Resultado:
RESULT ______________ COFFEE TIME
Lo mismo se aplica cuando el argumento usa mayúsculas y minúsculas:
SELECT NLS_UPPER('Coffee Time') AS Result
FROM DUAL;
Resultado:
RESULT ______________ COFFEE TIME
Y si el argumento ya está en mayúsculas, entonces el resultado es el mismo que la entrada:
SELECT NLS_UPPER('COFFEE TIME') AS Result
FROM DUAL;
Resultado:
RESULT ______________ COFFEE TIME
Especifique una colación
Aquí hay un ejemplo que demuestra cómo especificar una intercalación puede alterar los resultados:
SELECT
NLS_UPPER('fasilə') AS r1,
NLS_UPPER('fasilə', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;
Resultado:
R1 R2 _________ _________ FASILƏ FASİLƏ
Observe que la segunda columna usa una letra mayúscula punteada 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_UPPER('fasilə', '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_UPPER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLS_UPPER('fasilə', null) AS r2,
NLS_UPPER(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_UPPER()
sin pasar ningún argumento devuelve un error:
SELECT NLS_UPPER()
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT NLS_UPPER() 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_UPPER('coffee', 'NLS_SORT = XAZERBAIJANI', 'time')
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT NLS_UPPER('coffee', 'NLS_SORT = XAZERBAIJANI', 'time') FROM DUAL Error at Command Line : 1 Column : 55 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: