Проверьте, является ли файл SQL, или проверьте его синтаксис

# #oracle #jenkins #gitlab #devops

#Oracle #дженкинс #gitlab #devops

Вопрос:

Я внедряю DevOps с Oracle и Дженкинсом, я использую репозиторий Gitlab для scripts .sql (PL/SQL и ORDS), я хочу проверить, загружен ли файл, и конвейер запуска действительно является файлом SQL, и проверить его синтаксис, чтобы избежать выполнения всего конвейера, если это неправильный файл. Существует какая-то команда или скрипт Oracle, которые это делают? (Я нахожу ПЛАН ОБЪЯСНЕНИЯ, но он не работает с блоками и порядками PL/SQL)

Спасибо

Комментарии:

1. для ваших орденских вещей… что именно у вас есть? УПОРЯДОЧИВАЕТ вызовы API PL/SQL? Что-то еще?

2. У меня есть сценарии PL/SQL для изменения схемы, а также заказы для создания вызовов API, оба типа являются файлами .sql, когда пользователь базы данных изменяет свои файлы, выполняется конвейер Дженкинса и применяет эти файлы sql в базе данных, я хочу только проверить, являются ли загружаемые файлы файлами SQL, а не другими типами сценариев (python, rb и т. Д.).

3. таким образом, объекты/файлы ORDS также являются просто сценариями sql, тогда

4. Да, сэр, кстати, мне нравится ваш блог, в последнее время я часто его посещаю!

Ответ №1:

 script  var input = 'select * from emp';  var ParsedSql = Java.type('oracle.dbtools.parser.plsql.ParsedSql');  var parsed = new ParsedSql(input);  var root = parsed.parse();  root.printTree(); /  

введите описание изображения здесь

Другие полезные методы ParsedSql:

  • GetInput()
  • getSrc()
  • getRoot()
  • getSyntaxError()