Operator konkatenacji manipuluje ciągami znaków i danymi CLOB
. Tabela 4-3 zawiera opis operatora konkatenacji.
Tabela 4- 3.3 Operator konkatenacji
Operator | Cel | Przykład |
---|---|---|
|| |
Konkatenuje ciągi znaków i |
SELECT 'Name is ' || last_name FROM employees; |
Wynikiem konkatenacji dwóch ciągów znaków jest kolejny ciąg znaków. Jeśli oba łańcuchy znaków są typu danych CHAR
, wynik ma typ danych CHAR
i jest ograniczony do 2000 znaków. Jeśli którykolwiek z argumentów jest datatype VARCHAR2
, wynik ma datatype VARCHAR2
i jest ograniczony do 4000 znaków. Jeśli którykolwiek z argumentów jest CLOB
, wynikiem jest tymczasowy CLOB
. Spacje w łańcuchach znaków są zachowywane podczas konkatenacji, niezależnie od typu danych łańcucha lub CLOB
.
Na większości platform operator konkatenacji to dwa pełne pionowe paski, jak pokazano w tabeli 4-3. Jednak na niektórych platformach IBM operator ten występuje w postaci łamanych pionowych pasków. Podczas przenoszenia plików skryptów SQL pomiędzy systemami o różnych zestawach znaków, np. pomiędzy ASCII i EBCDIC, pionowe paski mogą nie zostać przetłumaczone na pionowe paski wymagane przez docelowe środowisko bazy danych Oracle. Oracle udostępnia funkcję znaku CONCAT
jako alternatywę dla operatora pionowego paska w przypadkach, gdy kontrola tłumaczenia przez system operacyjny lub narzędzia sieciowe jest trudna lub niemożliwa. Funkcji tej należy używać w aplikacjach, które będą przenoszone między środowiskami o różnych zestawach znaków.
Ale Oracle traktuje łańcuchy znaków o zerowej długości jako zera, konkatenacja łańcucha znaków o zerowej długości z innym operandem zawsze daje w wyniku drugi operand, więc null może być wynikiem tylko konkatenacji dwóch łańcuchów zerowych. Może to jednak nie być prawdą w przyszłych wersjach bazy danych Oracle. Aby złączyć wyrażenie, które może mieć wartość null, należy użyć funkcji NVL
aby jawnie przekonwertować wyrażenie na łańcuch o zerowej długości.
Zobacz także:
-
„Character Datatypes”, aby uzyskać więcej informacji na temat różnic między typami danych
CHAR
iVARCHAR2
-
Funkcje CONCAT i NVL
-
Oracle Database Application Developer’s Guide -. Large Objects, aby uzyskać więcej informacji na temat
CLOB
s
Konkatenacja Przykład Ten przykład tworzy tabelę z kolumnami CHAR
i VARCHAR2
, wstawia wartości zarówno z jak i bez spacji, a następnie wybiera te wartości i łączy je. Zauważ, że dla obu kolumn CHAR
i VARCHAR2
, spacje są zachowane.
CREATE TABLE tab1 (col1 VARCHAR2(6), col2 CHAR(6), col3 VARCHAR2(6), col4 CHAR(6) );INSERT INTO tab1 (col1, col2, col3, col4) VALUES ('abc', 'def ', 'ghi ', 'jkl');SELECT col1||col2||col3||col4 "Concatenation" FROM tab1;Concatenation------------------------abcdef ghi jkl