sql >> Database >  >> RDS >> Oracle

COMPOSE() Functie in Oracle

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"

  1. Hoe kolommen in CSV-bestand over te slaan bij het importeren in MySQL-tabel met behulp van LOAD DATA INFILE?

  2. Hoe PostgreSQL 12 op Ubuntu 20.04 DigitalOcean te installeren

  3. MySQL my.ini-locatie

  4. Conversie van een datetime2-gegevenstype naar een datetime-gegevenstype resulteert in een waarde buiten het bereik