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: