Oracle
 sql >> Database >  >> RDS >> Oracle

COMPOSE() Funzione in Oracle

In Oracle Database, il COMPOSE() La funzione restituisce il risultato dell'applicazione della composizione canonica Unicode, come descritto nella definizione standard Unicode D117, al suo argomento stringa.

È l'opposto di DECOMPOSE() funzione.

Sintassi

La sintassi è questa:

COMPOSE(char)

Dove char è uno di CHAR , VARCHAR2 , NCHAR o NVARCHAR2 tipi di dati.

Esempio

Ecco un esempio da dimostrare:

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

Risultato:

ã

Caratteri non Unicode

Se il set di caratteri dell'argomento non è uno dei set di caratteri Unicode, l'argomento viene restituito non modificato.

Esempio:

SELECT COMPOSE( 'a' )
FROM DUAL;

Risultato:

a

Argomento nullo

Se l'argomento è null , il risultato è null :

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

Risultato:

null

Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che si verifica un valore nullo come risultato di un SQL SELECT dichiarazione.

Tuttavia, puoi usare SET NULL per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null deve essere restituito.

Conteggio argomenti non valido

Chiamando COMPOSE() senza alcun argomento genera un errore:

SELECT COMPOSE()
FROM DUAL;

Risultato:

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

E anche il passaggio di troppi argomenti provoca un errore:

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

Risultato:

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