Как использовать REGEXP_REPLACE для удаления параметров из функции? - PullRequest
0 голосов
/ 25 мая 2018

Изображение здесь

У меня есть столбец, в котором хранятся коды C #,Как удалить последние 3 параметра «FunctionA»?Обратите внимание, что столбец содержит несколько функций, но мне нужно только заменить «FunctionA» с помощью PL / SQL, я знаю, что REGEXP_REPLACE может помочь, но я не могу найти способ сопоставить / заменить его.

До:

Test=FunctionA(varID, 1234,"", A.B,"","","last");

Test=FunctionA(varID, 9876,"", C.D);

Test=FunctionB(varID, 5555,"", E.F,"","","last");

После:

Test=FunctionA(varID, 1234,"", A.B);

Test=FunctionA(varID, 9876,"", C.D); <- не должно влиять на это </p>

Test=FunctionB(varID, 5555,"", E.F,"","","last"); <- не должно влиять на это </p>

1 Ответ

0 голосов
/ 25 мая 2018

Попробуйте найти этот шаблон:

(,[^,]*,[^,]*,[^,]*\);)$

А затем замените его на );.Вот пример запроса:

SELECT
    REGEXP_REPLACE ('Test=FunctionA(varID, 1234,"", A.B,"","","last");',
        '(,[^,]*,[^,]*,[^,]*\);)$', ');') AS output
FROM dual
WHERE col LIKE 'Test=FunctionA(%'

Test=FunctionA(varID, 1234,"", A.B);

Демо

Редактировать: я добавил предложение WHERE, которое проверяет имя функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...