Oracle
 sql >> Datenbank >  >> RDS >> Oracle

COMPOSE()-Funktion in Oracle

In der Oracle-Datenbank das COMPOSE() Die Funktion gibt das Ergebnis der Anwendung der kanonischen Unicode-Komposition, wie in der Unicode-Standarddefinition D117 beschrieben, auf ihr String-Argument zurück.

Es ist das Gegenteil von DECOMPOSE() Funktion.

Syntax

Die Syntax lautet wie folgt:

COMPOSE(char)

Wobei char ist einer von CHAR , VARCHAR2 , NCHAR , oder NVARCHAR2 Datentypen.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

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

Ergebnis:

ã

Nicht-Unicode-Zeichen

Wenn der Zeichensatz des Arguments keiner der Unicode-Zeichensätze ist, wird das Argument unverändert zurückgegeben.

Beispiel:

SELECT COMPOSE( 'a' )
FROM DUAL;

Ergebnis:

a

Null-Argument

Wenn das Argument null ist , ist das Ergebnis null :

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

Ergebnis:

null

Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn als Ergebnis eines SQL-SELECT ein Nullwert auftritt Aussage.

Sie können jedoch SET NULL verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null zurückgegeben werden soll.

Ungültige Argumentanzahl

Aufruf von COMPOSE() ohne Argumente führt zu einem Fehler:

SELECT COMPOSE()
FROM DUAL;

Ergebnis:

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

Und die Übergabe zu vieler Argumente führt ebenfalls zu einem Fehler:

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

Ergebnis:

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