REPLACE в Oracle SQL. Введение
Когда нужно заменить одни символы на другие внутри текстового значения, используется функция REPLACE. Это простая и мощная функция, которая позволяет корректировать, очищать, форматировать и адаптировать строки прямо в запросах.
Её часто применяют:
Для чистки данных (например, удаление пробелов или спецсимволов)
При обработке пользовательского ввода
Для унификации значений
В ETL-процессах (загрузка и преобразование данных)
🔤 Написание
📌 Если третий аргумент (на что заменить) не указан, то удаляется найденная подстрока.
🔄 Где часто используется
В
SELECT, чтобы обработать результат выводаВ
UPDATE, чтобы модифицировать строку в таблицеПри фильтрации (
WHERE REPLACE(...) = ...)В динамических выражениях и форматировании
В сочетании с
TRIM,SUBSTR,INSTR,TRANSLATE
🧪 10 Примеров использования REPLACE с пояснениями
1️⃣ Замена одной подстроки на другую
Результат: hello Oracle
2️⃣ Удаление символа (без третьего параметра)
Удаление всех дефисов → 1234567890
3️⃣ Замена нескольких символов — последовательно
Комбинация замен
4️⃣ Применение в UPDATE
Очистка телефонных номеров от дефисов.
5️⃣ Замена символов в тексте запроса с WHERE
Удаление восклицательных знаков перед поиском.
6️⃣ Работа с NULL (ничего не меняется)
Функция не выполняется для NULL
7️⃣ REPLACE в подзапросе
Удаление префиксов в именах.
8️⃣ REPLACE внутри CASE
Условная замена при наличии дефиса.
9️⃣ Удаление лишних пробелов
Можно применить несколько раз для полного удаления.
🔟 Удаление HTML-тегов (упрощённый способ)
Очистка строки от тегов (подходит для простых случаев).
🧩 Заключение
REPLACE — это базовая, но очень полезная функция Oracle SQL, особенно при обработке текстовых данных. Она работает быстро и эффективно, позволяет проводить замены любой сложности и может быть встроена в более сложные текстовые выражения.
💡 Запомни:
При отсутствии третьего аргумента — символы удаляются
Учитывает регистр (чувствителен к заглавным/строчным)
Можно применять вложенные
REPLACEдля сложной очисткиХорошо комбинируется с другими текстовыми функциями