Я хочу изменить DBMS_LOB.substr, используя antlr: Пример1: Ввод:
DBMS_LOB.SUBSTR(field_name1, 4000, 1)
Вывод:
SUBSTR(field_name1, 1, 4000)
Нам нужно сделать 2 вещи: 1) удалить DBMS_LOB.2) поменяйте местами 2-й и 3-й аргументы
Я могу переопределить правило для конкретного токена и изменить его для обработки вышеуказанного.
Проблема обработки рекурсивно: у меня есть что-то вроде вводаэто:
DBMS_LOB.SUBSTR(field_name1, DBMS_LOB.SUBSTR(field_name2, 6000, 1), DBMS_LOB.SUBSTR(field_name3, 8000, 1))
Я хочу изменить что-то вроде:
SUBSTR(field_name1, SUBSTR(field_name3, 1, 8000), SUBSTR(field_name2, 1, 6000))
Как обрабатывать, когда DBMS_LOB.SUBSTR появляется на нескольких уровнях в исходной инструкции.
Любойпомощь будет оценена.