In Oracle Database, de COMPOSE()
functie retourneert het resultaat van het toepassen van de Unicode-canonieke compositie, zoals beschreven in de Unicode-standaarddefinitie D117, op het tekenreeksargument.
Het is het tegenovergestelde van de DECOMPOSE()
functie.
Syntaxis
De syntaxis gaat als volgt:
COMPOSE(char)
Waar char
is een van CHAR
, VARCHAR2
, NCHAR
, of NVARCHAR2
gegevenstypen.
Voorbeeld
Hier is een voorbeeld om te demonstreren:
SELECT
COMPOSE('a' || UNISTR('\0303'))
FROM DUAL;
Resultaat:
ã
Niet Unicode-tekens
Als de tekenset van het argument niet een van de Unicode-tekensets is, wordt het argument ongewijzigd geretourneerd.
Voorbeeld:
SELECT COMPOSE( 'a' )
FROM DUAL;
Resultaat:
a
Nullargument
Als het argument null
is , het resultaat is null
:
SET NULL 'null';
SELECT COMPOSE(null)
FROM DUAL;
Resultaat:
null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer een null-waarde optreedt als resultaat van een SQL SELECT
verklaring.
U kunt echter SET NULL
gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null
moet worden geretourneerd.
Ongeldig aantal argumenten
COMPOSE()
aanroepen zonder argumenten resulteert in een fout:
SELECT COMPOSE()
FROM DUAL;
Resultaat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
En het doorgeven van te veel argumenten resulteert ook in een fout:
SELECT COMPOSE('a', 'b')
FROM DUAL;
Resultaat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"