I Oracle Database er COMPOSE()
funktion returnerer resultatet af at anvende den kanoniske Unicode-sammensætning, som beskrevet i Unicode Standard-definitionen D117, til dets strengargument.
Det er det modsatte af DECOMPOSE()
funktion.
Syntaks
Syntaksen ser sådan ud:
COMPOSE(char)
Hvor char
er en af CHAR
, VARCHAR2
, NCHAR
eller NVARCHAR2
datatyper.
Eksempel
Her er et eksempel til demonstration:
SELECT
COMPOSE('a' || UNISTR('\0303'))
FROM DUAL;
Resultat:
ã
Ikke Unicode-tegn
Hvis argumentets tegnsæt ikke er et af Unicode-tegnsættene, returneres argumentet uændret.
Eksempel:
SELECT COMPOSE( 'a' )
FROM DUAL;
Resultat:
a
Nul-argument
Hvis argumentet er null
, resultatet er null
:
SET NULL 'null';
SELECT COMPOSE(null)
FROM DUAL;
Resultat:
null
Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når der opstår en null-værdi som et resultat af en SQL SELECT
erklæring.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Ugyldigt argumentantal
Kalder COMPOSE()
uden nogen argumenter resulterer i en fejl:
SELECT COMPOSE()
FROM DUAL;
Resultat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Og at sende for mange argumenter resulterer også i en fejl:
SELECT COMPOSE('a', 'b')
FROM DUAL;
Resultat:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"