符合多个数据库的在线SQL语法检查程序

Pha*_*ani 67 mysql sql-server oracle postgresql

是否有任何网站可用于验证符合多个数据库的语法?

例如:如果我有一个带有'usage'关键字的SQL语句,那么该网站应该给我一个错误,说MALTQL中保留了'usage'关键字?

Gar*_*ers 21

你可以尝试像这样的格式化程序

它们将始终受到限制,因为它们不会(也不能)知道您在数据库中定义的用户定义函数(或您拥有或无权访问的内置函数).

您还可以查看ANTLR(但这将是一个离线解决方案)

  • @Phani:甚至很难说出什么是保留关键字.以下是11gR2的[Oracle保留关键字](http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10830/appb.htm#BABGHAFH)的官方列表,但测试显示其中一些不是真的很保守.例如,`notfound`,`arraylen`,`sqlbuf`,`rowlabel`不应该作为列名,但它们可以.100%的解决方案几乎肯定是不可能的.您可能希望添加一些有关您正在做什么以及您需要多少准确性的详细信息. (2认同)

Mic*_*ton 5

我还没见过这样的东西,但是这个开发工具包括oracle,mysql,db2和sql server的语法检查器...... http://www.sqlparser.com/index.php

然而,这似乎只是图书馆.您需要构建一个应用程序来利用解析器来执行您想要的操作.包含所有数据库的企业版将花费您450美元......哎哟!

编辑:并且,在说完之后 - 看起来有人可能已经使用该库完成了您想要的任务:http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl

虽然在线工具不会自动检查每个数据库,但您需要手动运行每个数据库.我也不能说检查语法有多好.你需要自己调查一下.


Rem*_*ner 4

只知道这个。不确定它对 MySQL 的效果如何 http://developer.mimer.se/validator/