В рамках выпуска мы запускаем загрузку сценариев PL / SQL для базы данных. Недавно кто-то оставил ;
в конце строки в одном сценарии, который назывался другим сценарием, так что это означало, что сценарий не запустился. Поскольку это не вызвало ошибки, оно просто не запустилось, потребовалось много времени, чтобы отследить, что произошло.
Я хочу проверить сценарии перед их выполнением на наличие строк в них, в которых отсутствует либо ;
в конце, либо /
в строке после. Это усложняется тем, что «строки» в скрипте могут фактически занимать более одной строки, если это оператор или блок кода.
Мне кажется, что для этого мне нужно разобрать сценарии, а затем проверить, соответствуют ли они выше.
Я нашел ANTLR и задаюсь вопросом, может ли это быть способом сделать это, поскольку, кажется, существует существующих грамматик PL / SQL , но похоже, что это будет шагом Кривая обучения для простой проверки.
Кто-нибудь знает простой способ или какие-либо другие инструменты, плагины затмений и т. Д., Которые я могу использовать для проверки строк в сценариях, в которых отсутствует либо ;
в конце, либо /
в строке после?
Обновление
Мы уже делаем большую часть материала Том Х предложил . Сценарии запускаются на нашем тестовом сервере, и у нас есть таблица версий, которая обновляется в конце. Проблема заключалась в том, что пропущенная точка с запятой в сценарии контейнера означала, что один сценарий не был запущен, но остальные, включая тот, который обновлял номер версии, работали без ошибок. Поэтому проблема только попала в тестирование. Это требовало восстановления базы данных перед запуском сценариев с добавлением отсутствующей точки с запятой, что в основном приводило к потере полдня времени тестирования. Если бы был простой способ проверить это до запуска скриптов на тестовом сервере, это могло бы сэкономить немало времени.