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