Конкатенация строк в PL/SQL: CONCAT и ||

функции CONCAT и оператор || PL/SQLСуществует два способа объединения строк в PL/SQL: функция CONCAT и оператор конкатенации, представленный двумя вертикальными чертами ||. В практическом программировании намного чаще применяется оператор конкатенации. Для чего нужны два механизма, спросите вы? Дело в том, что при трансляции кода между серверами, использующими кодировки ASCII и EBCDIC, могут возникнуть проблемы с символами вертикальной черты, а на некоторых клавиатурах для ввода этих символов приходится проявлять настоящие чудеса ловкости. Если вам неудобно работать с вертикальными чертами, используйте функцию CONCAT, которая получает два аргумента:

CONCAT (строка1, строка2)

Функция CONCAT всегда присоединяет строку2 в конец строки1 и возвращает результат. Если одна из двух строк равна NULL, функция CONCAT возвращает отличный от NULL аргумент. Если обе строки равны NULL, то CONCAT возвращает NULL. Если входные строки не относятся к типу CLOB, итоговая строка будет относиться к типу VARCHAR2. Если одна или обе входные строки относятся к типу CLOB, то в результате конкатенации будет получен тип CLOB. Если одна из строк относится к типу NCLOB, итоговая строка тоже относится к типу NCLOB. В общем случае возвращаемое значение относится к типу, сохраняющему максимум полезной информации. Несколько примеров использования CONCAT:

CONCAT ('abc', 'defg') --> 'abcdefg'
CONCAT (NULL, 'def') --> 'def'
CONCAT ('ab', NULL) --> 'ab'
CONCAT (NULL, NULL) --> NULL

Обратите внимание: функция позволяет объединять только две строки, а оператор конкатенации — сразу несколько строк. Пример:

DECLARE
x VARCHAR2(100);
BEGIN
x := 'abc' || 'def' || 'ghi';
DBMS_OUTPUT.PUT_LINE(x);
END; 

Результат:

abcdefghi 

Для выполнения аналогичной конкатенации с использованием CONCAT приходится задействовать вложенные вызовы:

x := CONCAT(CONCAT('abc','def'),'ghi'); 

Как видите, оператор || не только удобнее CONCAT, но и программный код получается намного более понятным.

 

Вас заинтересует / Intresting for you:

Встроенные методы коллекций PL...
Встроенные методы коллекций PL... 14740 просмотров sepia Tue, 29 Oct 2019, 09:54:01
Управление приложениями PL/SQL...
Управление приложениями PL/SQL... 4634 просмотров Stas Belkov Thu, 16 Jul 2020, 06:20:48
Тип данных RAW в PL/SQL
Тип данных RAW в PL/SQL 12240 просмотров Doctor Thu, 12 Jul 2018, 08:41:33
Символьные функции и аргументы...
Символьные функции и аргументы... 18546 просмотров Анатолий Wed, 23 May 2018, 18:54:01
Войдите чтобы комментировать

ildergun аватар
ildergun ответил в теме #9064 5 года 9 мес. назад

isisisis60 пишет: CONCAT - очень полезная функция PL/SQL. Часто ее использую при написании кода.

Аналогично. Без нее никак...))
isisisis60 аватар
isisisis60 ответил в теме #9060 5 года 10 мес. назад
CONCAT - очень полезная функция PL/SQL. Часто ее использую при написании кода.