Как удалить несколько вхождений из входной строки с помощью oracle pl/SQL
Удаление повторяющихся слов из адреса с помощью oracle pl/sql:
Есть два типа адресов, которые там будут, ниже приведен пример
1.'Старые Мельники коттедж улица Лесная приложении зале ожидается выход Старого мельника' это - 'коттедж улица Лесная приложении зале старого мельника. Здесь коттедж присутствует, так что дубликат можно удалить либо с левой стороны, либо с правой стороны, любой из них правильный.
2.'Старые Мельники коттедж ферма, улица Лесная приложении зале ожидается выход Старого мельника' это - 'коттедж ферма, улица Лесная приложении зале старого'. Здесь коттедж присутствует, так что дубликат можно удалить либо с левой стороны, либо с правой стороны, любой из них правильный.
Мне было поручено сделать это через анонимный блок PL/SQL или через функцию. Любая помощь будет оценена по достоинству.
Что я уже пробовал:
СОЗДАЙТЕ ИЛИ ЗАМЕНИТЕ ФУНКЦИЮ FN_ADD_CLEANUP(ADD_IN В VARCHAR2)
RETURN VARCHAR2 IS
КОЛИЧЕСТВО NO_SPACES ;
F_ADD VARCHAR2(255);
T_ADD VARCHAR2(255);
ADD_OUT VARCHAR2(255);
НАЧАТЬ
-- ИНИЦИАЛИЗАЦИЯ ЗНАЧЕНИЯ ПАРАМЕТРА
ВЫБЕРИТЕ LTRIM(RTRIM(ADD_IN)) В F_ADD С ДВОЙНОЙ;
-- УСТАНОВИТЬ НЕТ ПРОБЕЛОВ
ВЫБЕРИТЕ REGEXP_COUNT(F_ADD, ' ') В NO_SPACES ИЗ DUAL;
-- ОБРЕЗНАЯ СТРУНА
ВЫБЕРИТЕ TRIM(SUBSTR(F_ADD, INSTR(F_ADD, ' ', 1, NO_SPACES/2 + 1))) В T_ADD С ДВОЙНОЙ;
-- РЕЗУЛЬТАТ
ADD_OUT := СЛУЧАЙ, КОГДА F_ADD ПОХОЖ НА T_ADD||'%'
ЗАТЕМ SUBSTR(F_ADD, 1, LENGTH(F_ADD) - LENGTH(T_ADD))
ЕЩЕ F_ADD
КОНЕЦ;
ВЕРНУТЬСЯ ADD_OUT;
КОНЕЦ;
GKP1992
Публикация одного и того же вопроса дважды не приведет к получению результата в два раза быстрее. На самом деле, это будет препятствовать людям помогать вам. Пожалуйста, закройте один из вопросов.
Member 13777735
Получу ли я за это какую-нибудь помощь?
Member 13777735
Никто не может мне в этом помочь. Так что спасибо всем.
Member 13777735
Я завершил это сам собой.
Member 13777735
Прошу прощения за то же самое. На самом деле я думал, что мой аккаунт не создан должным образом. Поскольку я не получил никакого ответа от этого аккаунта, все равно он завершен на 1 день. Вот почему я снова отправил его с другого счета.