O que é o operador de concatenação de string no Oracle?

O que é o operador de concatenação de string no Oracle SQL?

Existem algumas características “interessantes” que eu deveria ter cuidado?

(Isso parece óbvio, mas não consegui encontrar uma pergunta anterior).

É || , por exemplo:

 select 'Mr ' || ename from emp; 

A única característica “interessante” que consigo pensar é que 'x' || null 'x' || null retorna 'x' , não null como você talvez espere.

Há também concat, mas não se acostuma muito

 select concat('a','b') from dual; 

Eu sugeriria concat quando lidando com 2 strings, e || quando essas cordas são mais de 2:

 select concat(a,b) from dual 

ou

  select 'a'||'b'||'c'||'d' from dual 
 DECLARE a VARCHAR2(30); b VARCHAR2(30); c VARCHAR2(30); BEGIN a := ' Abc '; b := ' def '; c := a || b; DBMS_OUTPUT.PUT_LINE(c); END; 

saída :: abc def