W bazie danych Oracle COMPOSE()
funkcja zwraca wynik zastosowania kompozycji kanonicznej Unicode, jak opisano w definicji standardu Unicode D117, do swojego argumentu ciągu.
To przeciwieństwo DECOMPOSE()
funkcja.
Składnia
Składnia wygląda tak:
COMPOSE(char)
Gdzie char
jest jednym z CHAR
, VARCHAR2
, NCHAR
lub NVARCHAR2
typy danych.
Przykład
Oto przykład do zademonstrowania:
SELECT
COMPOSE('a' || UNISTR('\0303'))
FROM DUAL;
Wynik:
ã
Znaki inne niż Unicode
Jeśli zestaw znaków argumentu nie jest jednym z zestawów znaków Unicode, argument jest zwracany w postaci niezmienionej.
Przykład:
SELECT COMPOSE( 'a' )
FROM DUAL;
Wynik:
a
Argument zerowy
Jeśli argument jest null
, wynik to null
:
SET NULL 'null';
SELECT COMPOSE(null)
FROM DUAL;
Wynik:
null
Domyślnie SQLcl i SQL*Plus zwracają pustą spację za każdym razem, gdy w wyniku SELECT
wystąpi wartość null oświadczenie.
Możesz jednak użyć SET NULL
aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null
należy zwrócić.
Nieprawidłowa liczba argumentów
Wywołanie COMPOSE()
bez żadnych argumentów powoduje błąd:
SELECT COMPOSE()
FROM DUAL;
Wynik:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Przekazywanie zbyt wielu argumentów również skutkuje błędem:
SELECT COMPOSE('a', 'b')
FROM DUAL;
Wynik:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"