文字列の編集、文字列を結合、文字列を連結する

CONCAT ( string1 , string2 )
return [ string ]
| string1 | 文字列式 | |
| string2 | string1 に連結する文字列式 | |
- 文字列 string1 と string2 を連結した文字列を戻す。

CONCAT 関数の内容
文字列 string1 と string2 を連結した (CONCATenated) 文字列を戻す。
引数は常に 2つしかない。3つ以上の文字列を結合するには関数の中に関数を埋め込んで表現する。
VARCHAR2 での文字列の連結の最大サイズは 4000 バイト ⇒ 対処法 ORA-01704: 文字列リテラルが長すぎます
CONCAT 使用例
SQL> set null '<NULL>'
SQL> select str1, str2, concat(str1, str2) conc from concat_sample;
STR1 STR2 CONC
-------------------- -------------------- --------------------
あああ いいい あああいいい
<NULL> いいい いいい
あああ <NULL> あああ
<NULL> <NULL> <NULL>
⇒ SQL*Plus の NULL 表示
SQL> select str1, str2, str3, concat(concat(str1, str2), str3) conc
2 from concat_sample;
STR1 STR2 STR3 CONC
---------- ---------- ---------- --------------------
あああ いいい ううう あああいいいううう
<NULL> いいい ううう いいいううう
あああ <NULL> ううう あああううう
<NULL> <NULL> ううう ううう
文字列結合の豆知識
連結演算子 と CONCAT 関数
Oracle には演算子として同じ機能をもつ 連結演算子(||) が用意されている。
多くのプラットホームでは パイプ(||) が連結の機能をもつが、一部の環境において似ている記号が割り当てられているプラットホームが存在する。
すべてのプラットホームでソースの一切の変更無しでも使用できるようにするために CONCAT 関数が用意されている。(クロスプラットホーム対応のためらしい)
連結演算子(||) より便利な関数というわけでもない。むしろ使いにくいと言えるので使われることはほとんどない。
CONCAT システム変数
SQL 関数 - CONCAT 関連