SELECT LTRIM(' TeXt DATA') XI,
LTRIMC _ # TeXt DATA', ' #_') X2,
LTRIMC 1234567890 TeXt DATA', ' 1234567890') X3
FROM dual
|
XI |
Х2 |
ХЗ |
|
TeXt DATA |
TeXt DATA |
TeXt DATA |
Функция REPLACE(str, search_str, [,replace_str])
Функция REPLACE осуществляет поиск образца search_str в строке str и каждое найденное вхождение заменяет на replace_str. По умолчанию replace_str равен пустой строке, поэтому вызов функции REPLACE с двумя аргументами приводит к удалению всех найденных вхождений. Поиск подстроки ведется с учетом регистра.
Пример:
SELECT REPLACE('У попа была собака', 'собака', 'кошка') xl, REPLACE('y попа была злая собака', 'злая') х2, REPLACE('y попа была собака', 'Собака', 'Кошка') хЗ FROM dual
XI Х2 ХЗ
У попа была кошка У попа была собака У попа была собака
Функция TRANSLATE(str, from_mask, to_mask)
Функция TRANSLATE анализирует строку str и заменяет в ней все символы, встречающиеся в строке from_mask, на соответствующие символы из to_mask. Для корректной работы функции строки from_mask и to_mask должны иметь одинаковую длину или строка from_mask должна быть длиннее, чем to_mask. Если from_mask длинее, чем to_mask, и в процессе обработки строки str обнаружатся символы, соответствующие одному из символов from_mask, и при этом им не найдется соответствия в to_mask, то такие символы будут удалены из строки str. Если передать from_mask или to_mask, равное NULL, то функция возвратит значение NULL. Сравнение производится с учетом регистра.
Примеры:
SELECT TRANSLATE('Test 12345', 'е2', 'Е!') xl, TRANSLATE('Test 12345', 'е234', 'Е') х2 FROM dual
XI__________________ Х2_________________
TEst 11345 TEst 15
Данная функция удобна для решения ряда практических задач, связанных с перекодировкой символов или с поиском запрещенных символов. Например, необходимо проанализировать пароль и выяснить, содержит ли он хотя бы одну цифру. Реализация данной проверки при помощи TRANSLATE имеет вид:
IF TRANSLATE(PassWd, '0123456789', '*') = PassWd THEN ADD_ERR0R('Ошибка - Пароль должен содержать хотя бы одну цифру !'); RETURN 1; END IF;
Другой пример: идет подготовка числа к его преобразованию в NUMBER. Необходимо заменить разделители десятичных знаков «,» и «.» на «.» и удалить пробелы. Реализация данной операции при помощи TRANSLATE имеет вид:
предыдущаяследующая