Что такое оператор конкатенации строк в Oracle? - PullRequest
157 голосов
/ 10 ноября 2008

Что такое оператор конкатенации строк в Oracle SQL?

Есть ли какие-нибудь "интересные" функции, о которых я должен позаботиться?

(Это кажется очевидным, но я не мог найти предыдущий вопрос, задающий его).

Ответы [ 4 ]

217 голосов
/ 10 ноября 2008

Это ||, например:

select 'Mr ' || ename from emp;

Единственная «интересная» особенность, о которой я могу думать, это то, что 'x' || null возвращает 'x', а не null, как вы, возможно, ожидаете.

58 голосов
/ 11 ноября 2008

Конкат тоже есть, но он мало привыкает

select concat('a','b') from dual;
9 голосов
/ 11 ноября 2015

Я бы предложил concat при работе с 2 строками, а || когда эти строки больше 2:

select concat(a,b)
  from dual

или

  select 'a'||'b'||'c'||'d'
        from dual
5 голосов
/ 11 ноября 2015
DECLARE
     a      VARCHAR2(30);
     b      VARCHAR2(30);
     c      VARCHAR2(30);
 BEGIN
      a  := ' Abc '; 
      b  := ' def ';
      c  := a || b;
 DBMS_OUTPUT.PUT_LINE(c);  
   END;

output :: Abc def

...