sql >> Databáze >  >> RDS >> Oracle

Funkce COMPOSE() v Oracle

V databázi Oracle je to COMPOSE() funkce vrací výsledek použití kanonické kompozice Unicode, jak je popsáno v definici standardu Unicode D117, na svůj řetězcový argument.

Je to opak DECOMPOSE() funkce.

Syntaxe

Syntaxe vypadá takto:

COMPOSE(char)

Kde char je jedním z CHAR , VARCHAR2 , NCHAR nebo NVARCHAR2 datové typy.

Příklad

Zde je příklad k demonstraci:

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

Výsledek:

ã

Znaky jiné než Unicode

Pokud znaková sada argumentu není jednou ze znakových sad Unicode, argument je vrácen nezměněný.

Příklad:

SELECT COMPOSE( 'a' )
FROM DUAL;

Výsledek:

a

Nulový argument

Pokud je argument null , výsledkem je null :

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

Výsledek:

null

Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo, kdykoli se v důsledku příkazu SQL SELECT objeví hodnota null prohlášení.

Můžete však použít SET NULL určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null by měl být vrácen.

Neplatný počet argumentů

Volání COMPOSE() bez jakýchkoli argumentů vede k chybě:

SELECT COMPOSE()
FROM DUAL;

Výsledek:

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

A předání příliš mnoha argumentů také vede k chybě:

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

Výsledek:

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

  1. Jak získat přístup ke struktuře a získat seznam sloupců, datové typy rekurzoru?

  2. Jak NOW() funguje v MariaDB

  3. JSON_CONTAINS_PATH() Příklady v MySQL

  4. PHP a MySQL:mysqli_num_rows() očekává, že parametr 1 bude mysqli_result, daný booleovský