連結演算子 || は、文字列とCLOBデータ型のデータを結合するために使用されます。連結演算子を使用して2つの文字列を結合すると、別の文字列が得られます。
2つの文字列のデータ型がどちらもCHARの場合、結果のデータ型もCHARとなり、長さは2000文字に制限されます。
結合されるいずれか一方の文字列のデータ型がVARCHAR2の場合、結果のデータ型もVARCHAR2となり、長さは4000文字に制限されます。
連結演算子の両側のパラメータのいずれか一方がCLOBデータ型の値である場合、結果のデータ型は一時的なCLOBとなります。
OceanBaseデータベースでは、長さが0の文字列はNULL値と見なされますが、値を持つオペランドと長さが0の文字列を結合した結果は値を持つオペランドとなるため、NULLは値がNULLの2つの文字列の連結によってのみ生成されます。NULL値を含む可能性のある式を結合する場合は、NVL関数を使用して式を直接長さが0の文字列に変換することを推奨します。
以下の例では、CHARとVARCHAR2型の列を含むテーブルを作成し、末尾にスペースを付ける値と付けない値を挿入して結合します。
obclient> CREATE TABLE tbl1 (col1 VARCHAR2(6), col2 CHAR(10), col3 VARCHAR2(10), col4 CHAR(6));
Query OK, 0 rows affected
obclient> INSERT INTO tbl1 (col1, col2, col3, col4) VALUES ('abc', 'def ', 'ghi ', 'jkl');
Query OK, 1 row affected
obclient> SELECT col1 || col2 || col3 || col4 "Concatenation" FROM tbl1;
+----------------------------+
| Concatenation |
+----------------------------+
| abcdef ghi jkl |
+----------------------------+
1 row in set