Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja COMPOSE() w Oracle

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"

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nieprawidłowy wzorzec nazwy podczas próby przekazania niestandardowego mapowania obiektów typu oracle

  2. ORA-01843 nie jest prawidłowym miesiącem- Porównywanie dat

  3. Tworzenie tabeli i wstawianie w ramach tej samej procedury w pl/sql

  4. Agregat Oracle do łączenia ciągów znaków przecinkiem i pisania niestandardowych agregatów

  5. SQLPlus - buforowanie do wielu plików z bloków PL/SQL