連結演算子は、文字列やCLOB
データを操作する演算子です。 表4-3に連結演算子の説明を示します。
表4-?3 連結演算子
演算子 | 目的 | 例 |
---|---|---|
| |
文字列や |
SELECT 'Name is ' || last_name FROM employees; |
2つの文字列を連結した結果は、別の文字列になります。 両方の文字列が datatype CHAR
の場合、結果は datatype CHAR
で、2000文字に制限されます。 どちらかの文字列がdatatype VARCHAR2
の場合、結果はdatatype VARCHAR2
CLOB
CLOB
CLOB
のデータ型にかかわらず、連結によって保存されます。
ほとんどのプラットフォームでは、表4-3に示すように、連結演算子は2本の実線の縦棒です。
ほとんどのプラットフォームでは、表4-3のように連結演算子は2本の実線の縦棒になっています。 ASCIIとEBCDICのように文字セットが異なるシステム間でSQLスクリプトファイルを移動すると、縦棒がターゲットのOracle Database環境で必要とされる縦棒に変換されないことがあります。 オラクルでは、オペレーティング・システムやネットワーク・ユーティリティーによる変換を制御することが困難な場合や不可能な場合に、縦棒演算子の代替としてCONCAT
という文字関数を提供しています。
オラクルでは長さゼロの文字列をヌルとして扱っていますが、長さゼロの文字列を他のオペランドと連結すると必ず他のオペランドになるため、ヌルは2つのヌル文字列を連結したときにのみ発生します。 ただし、Oracle Database の将来のバージョンでは、これが引き続き正しいとは限りません。 NULL の可能性がある式を連結するには、NVL
関数を使って明示的に式を長さゼロの文字列に変換します。
See Also:
-
CHAR
VARCHAR2
のデータ型の違いについては、「文字データ型」を参照してください -
関数のCONCATとNVL
-
Oracle Database Application Developer’s Guide – Large Objects
-
Oracle Database Application Developer’s Guide – Large Objects
NVL
関数を参照してください。 ラージオブジェクトの詳細については、CLOB
s
連結の例 この例では、CHAR
VARCHAR2
CHAR
VARCHAR2
の両カラムでは、末尾のブランクが保存されています
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
。