валидатор SQL-запросов - PullRequest
       1

валидатор SQL-запросов

4 голосов
/ 03 августа 2010

Существует ли какой-либо валидатор SQL-запросов на стороне интерфейса или на каком-либо языке для проверки синтаксиса запроса перед его выполнением в базе данных? В моем текущем проекте мне нужно проверить SQL-запрос в flex, прежде чем он перейдет в конец, потому что он должен пройти много слоев, прежде чем ударить по базе данных, а затем поразить базу данных и вернуться с исключением - это слишком дорогой процесс. Поэтому мне нужен валидатор SQL-запросов на внешнем интерфейсе, чтобы хотя бы сказать, что это правильный запрос.

Ответы [ 2 ]

2 голосов
/ 03 августа 2010

Вы можете получить грамматику SQL BNF и использовать генератор синтаксического анализатора для проверки ввода.

Я уверен, что вам придется настроить стандартную грамматику, и это не тривиально. Кроме того, я уверен, что вы можете найти что-то лучше, но я надеюсь, что вышеизложенное поможет вам где-нибудь.

1 голос
/ 03 августа 2010

для разбора SQL во время выполнения вы можете посмотреть: SQL4J - это SQL-парсер, написанный на Java.http://www.cs.toronto.edu/~jglu/sql4j/index.htm

http://jsqlparser.sourceforge.net/

Возможно, вы можете использовать Antlr, он имеет несколько грамматик SQL.http://www.antlr.org/grammar/list

Или в соответствии с рекомендациями используйте синтаксический анализатор утилит SQL с открытым исходным кодом, таких как SQuirreL SQL Client.http://squirrel -sql.sourceforge.net /

или использовать части чистой Java-СУБД с открытым исходным кодом, такие как SmallSQL.http://www.smallsql.de/

Существуют плагины Eclipse IDE для проверки SQL из IDE.

Выезд: http://www.eclipse.org/datatools/

...