Подтвердить что ты не робот

Онлайн-синтаксический синтаксический анализатор SQL, соответствующий нескольким базам данных

Есть ли сайт в Интернете для проверки синтаксиса, который соответствует нескольким базам данных?

Например: если у меня есть оператор SQL с ключевым словом 'usage', то сайт должен выдать мне ошибку, говоря, что ключевое слово 'usage' зарезервировано в MYSQL?

4b9b3361

Ответ 1

Вы можете попробовать форматировать, например this

Они всегда будут ограничены, потому что они (и не могут) знать, какие пользовательские функции вы могли бы определить в своей базе данных (или какие встроенные функции у вас есть или не имеют доступа).

Вы также можете посмотреть ANTLR (но это будет автономное решение)

Ответ 3

Я такого никогда не видел, но есть этот инструмент для разработчиков, который включает в себя проверку синтаксиса для сервера oracle, mysql, db2 и sql... http://www.sqlparser.com/index.php

Однако это, по-видимому, просто библиотека. Вам нужно будет создать приложение, чтобы использовать парсер, чтобы делать то, что вы хотите. И Enterprise Edition, который включает в себя все базы данных, обойдется вам в 450 долларов... ouch!

EDIT: И, сказав это, похоже, что кто-то уже мог сделать то, что вы хотите, используя эту библиотеку: http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl

Онлайновый инструмент автоматически не проверяет каждую БД, поэтому вам нужно запускать их вручную. Я также не могу сказать, насколько это хорошо при проверке синтаксиса. Это вам нужно исследовать самостоятельно.

Ответ 5

Я не знаю такого, и мой опыт в том, что он в настоящее время не существует. Большинство из них сравнивают две базы данных. Эта информация требует экспертов во всех встречающихся базах данных, что не является общим. Версии тоже зависят, чтобы знать, что поддерживается.

Функции ANSI делают шаги для обеспечения поддержки синтаксиса в базах данных, но зависят от поставщиков, реализующих спецификацию. И на сегодняшний день они не реализуют всю спецификацию ANSI за раз.

Но вы можете толковать источник на сайтах, подобных этому, задавая конкретные вопросы и включая задействованные базы данных и используемые версии.

Ответ 6

Я готов поспорить с некоторыми из моей репутации, что такой вещи нет.

Частично потому, что, если вас беспокоит кросс-платформенная совместимость с SQL, ваш лучший выбор, в свою очередь, заключается в абстрагировании кода вашей базы данных с некоторым API или ORM, который обрабатывает эти вещи для вас и хорошо поддерживается, так что они будут работать с новыми версиями баз данных, когда они выйдут.

Точный вид API, доступный вам, будет зависеть от вашего языка/платформы программирования. Например, у PHP есть Pear: DB и другие, я лично нашел довольно приятные функции ORM Python, реализованные в структуре Django. Я предполагаю, что некоторые из этих вещей также должны быть доступны и на других платформах.