Вы можете попробовать с ANTLR .
На странице грамматики вы найдете несколько грамматик, связанных с Oracle.
Не имеет отношения, есть ли способ просто "Подготовить" оператор без выполнения?Таким образом, вы можете проверить синтаксис Oracle, а затем перехватить возможные ошибки в вашем коде.Это поможет вам избежать дублирования функций, уже присутствующих в Oracle.Не говоря уже о проблеме обработки изменений между разными версиями Oracle.
Редактировать:
Замечание по поводу примеров кода: я кратко использовал ANTLR, и мне было трудно найти примеры кода в Интернете.Основным источником, который я нашел, было примеров со страницы загрузки ANTLR .Теперь я вижу, что Теренс Парр, автор ANTLR, опубликовал новую книгу , и этот сопровождающий исходный код содержит больше примеров ANTLR .
Поскольку у вас нет большого опыта работы с ANTLR, позвольте мне снова предложить вам другой подход, поскольку это довольно сложная область и требует значительных усилий для обучения, чтобы начать работу.По крайней мере, это был мой опыт.