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

Función COMPONE() en Oracle

En Oracle Database, COMPOSE() La función devuelve el resultado de aplicar la composición canónica Unicode, como se describe en la definición estándar Unicode D117, a su argumento de cadena.

Es lo opuesto a DECOMPOSE() función.

Sintaxis

La sintaxis es así:

COMPOSE(char)

Donde char es uno de CHAR , VARCHAR2 , NCHAR o NVARCHAR2 tipos de datos.

Ejemplo

Aquí hay un ejemplo para demostrarlo:

SELECT 
    COMPOSE('a' || UNISTR('\0303'))
FROM DUAL;

Resultado:

ã

Caracteres no Unicode

Si el juego de caracteres del argumento no es uno de los juegos de caracteres Unicode, el argumento se devuelve sin modificar.

Ejemplo:

SELECT COMPOSE( 'a' )
FROM DUAL;

Resultado:

a

Argumento nulo

Si el argumento es null , el resultado es null :

SET NULL 'null';
SELECT COMPOSE(null)
FROM DUAL;

Resultado:

null

De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que se produce un valor nulo 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 no válidos

Llamar a COMPOSE() sin ningún argumento da como resultado un error:

SELECT COMPOSE()
FROM DUAL;

Resultado:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Y pasar demasiados argumentos también da como resultado un error:

SELECT COMPOSE('a', 'b')
FROM DUAL;

Resultado:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"