FirebirdSQL logo

REPLACE()

Доступно в

DSQL, PSQL

Синтаксис
REPLACE (str, find, repl)
Table 1. Параметры функции REPLACE
Параметр Описание

str

Строка, в которой делается замена.

find

Строка, которая ищется.

repl

Строка, на которую происходит замена.

Тип возвращаемого результата:

VARCHAR или BLOB

Функция REPLACE заменяет в строке все вхождения одной строки на другую строку.

Особенности использования:

  • Функция поддерживает текстовые блоки любой длины и с любыми наборами символов;

  • Если один из аргументов имеет тип BLOB, то результат будет иметь тип BLOB. В противном случае результат будет иметь тип VARCHAR(N), где N рассчитывается из длин str, find и repl таким образом, что даже максимальное количество замен не будет вызывать переполнения поля.

  • Если параметр find является пустой строкой, то возвращается str без изменений;

  • Если параметр repl является пустой строкой, то все вхождения find удаляются из строки str;

  • Если любой из аргументов равен NULL, то результатом всегда будет NULL, даже если не было произведено ни одной замены.

Warning

При использовании BLOB в параметрах функции может потребоваться загрузить объект полностью в память.При больших объёмах BLOB могут наблюдаться потери производительности.

Примеры REPLACE

Example 1. Использование функции REPLACE
REPLACE ('Billy Wilder', 'il', 'oog')  -- возвращает 'Boogly Woogder'
REPLACE ('Billy Wilder', 'il', '')     -- возвращает 'Bly Wder'
REPLACE ('Billy Wilder', null, 'oog')  -- возвращает NULL
REPLACE ('Billy Wilder', 'il', null)   -- возвращает NULL
REPLACE ('Billy Wilder', 'xyz', null)  -- возвращает NULL (!)
REPLACE ('Billy Wilder', 'xyz', 'abc') -- возвращает 'Billy Wilder'
REPLACE ('Billy Wilder', '', 'abc')    -- возвращает 'Billy Wilder'
См. также:

[fblangref-scalarfuncs-overlay].