Существуют ли парсеры проверки с открытым исходным кодом для основных диалектов SQL (TSQL, Oracle, MySQL)? или хотя бы точные спецификации для этих диалектов? - PullRequest
5 голосов
/ 04 марта 2011

Слово на улице означает, что Perl определяется не спецификацией, а тем, что принимает текущая версия интерпретатора.Теперь давайте рассмотрим диалект SQL, такой как TSQL.Есть ли опубликованная спецификация, которая позволила бы сделать валидатор эквивалентным таковому внутри SQL Server?Существуют ли уже такие валидаторы как open source?И тот же вопрос для Oracle.

Хорошо, поэтому для MySQL я предполагаю, что валидатор может быть извлечен непосредственно из базы кода MySQL.Тем не менее, действительно ли они публикуют саму спецификацию на случай, если я захочу создать свой собственный валидатор?

1 Ответ

1 голос
/ 25 июня 2012

У вас, похоже, есть представление о том, что делать для MySQL. Я не могу особо сказать об Oracle, за исключением того, что он в основном реализует ANSI SQL, а расширения процедурного языка PL / SQL для SQL в основном можно найти здесь для Oracle 9i.

Для SQL Server:

Microsoft Books On Line (BOL) является официальной справочной спецификацией. Однако существуют разные страницы для разных версий SQL Server. Есть несколько проектов, связанных с этим. http://www.sqlparser.com/ - это версии .NET, Java, COM и VCL для Oracle, DB2, Mysql и SQL Server / Sybase (T-SQL). Также по разумной цене.

http://www.codeproject.com/Articles/1136/SharpHSQL-An-SQL-engine-written-in-C (c #)

http://antlr.org/ - это похоже на хорошую ставку.

Я часто использую этот сайт для форматирования SQL, но он также выполняет некоторую проверку, хотя он довольно грубый: http://www.dpriver.com/pp/sqlformat.htm

Это похожий сайт: http://www.tsqltidy.com/

Я бы предположил, что написание валидатора для SQL, даже в одном из его вариантов, является серьезной задачей. Вы можете посмотреть на различные стандарты ISO / IEC для ANSI SQL. ANSI SQL-92 реализован очень широко, но есть и стандарт SQL: 2008. Вы должны были бы заплатить за документацию для тех стандартов, хотя они не дешевы.

Удачи.

...