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"