Замена всех подстрок
Функция
Замена всех подстрок в заданной строке.
Спецификация
::=
::=
::=
Общие правила
-
< Строка >
,< подстрока1 >
,< подстрока2 >
должны иметь типы данных:CHAR
,VARCHAR
,NCHAR
,NCHAR VARYING
, символьное BLOB-значение. -
Типы данных
< строки >
,< подстроки1 >
и< подстроки 2 >
должны быть приводимыми. -
Длина
< подстроки1 >
,< подстроки2 >
не должна быть более 4000. -
Окончательная длина
< строки >
не должна быть более 4000. -
< Подстрока1 >
задает удаляемое из< строки >
значение. -
< Подстрока2 >
задает вставляемое вместо удаленной< подстроки1 >
значение. -
Если
< подстрока2 >
не задана, по умолчанию используется пустая строка (т.е. в этом случае происходит фактически удаление< подстроки1 >
.create or replace table tst (str char(20)); insert into tst values ('123456789abcdef'); select replace(str, '123','321') from tst; |321456789abcdef | select replace(str, '123') from tst; |456789abcdef |
-
Длины
< подстроки1 >
и< подстроки2 >
в байтах должна быть равны. -
Все аргументы функции могут быть заданы
< SQL-параметром >
, который должен содержать спецификацию типа данных параметра.select replace (? (char(20)), ? (char(5)), ? (char(5))); 11 22 311 55 11 aa |aa 22 3aa 55 |
Возвращаемое значение
-
Исходная < строка >, в которой все вхождения < подстроки1 > заменены на < подстроку2 >.
-
Если значение < подстроки1 > в < строке > не найдено, < строка > возвращается без изменений.
-
Результирующая строка возвращается без концевых пробелов.
-
Если один из аргументов имеет значение NULL, результат будет NULL.
-
Если аргумент < строка > имеет нулевую длину, возвращается пустая строка.
select replace('','1','2');
Примеры
select replace('123452367238','23','abcdd'); | 1abcdd45abcdd67abcdd8 |
select replace('123452367238','23','a'); | 1a45a67a8 |
Удаление всех вхождений подстроки:
select replace('123452367238','23', ''); | 145678 |
select replace('123452367238','bb','abc'); | 123452367238 |