在数据库中执行之前,是否有前端或任何语言的sql查询验证器用于验证查询语法?在我当前的项目中,我必须在flex之前验证sql查询,然后才能进入后端。它必须在击中数据库之前通过很多层,并且命中数据库并返回异常是一个过于昂贵的过程。因此我需要在前端的sql查询验证器至少说它是一个有效的查询。
答案 0 :(得分:1)
对于运行时的SQL解析,您可以查看: SQL4J是一个用Java编写的SQL解析器。 http://www.cs.toronto.edu/~jglu/sql4j/index.htm
http://jsqlparser.sourceforge.net/
也许您可以使用Antlr,它有许多SQL语法。 http://www.antlr.org/grammar/list
或者根据建议,使用SQuirreL SQL Client等开源SQL实用程序的解析器。 http://squirrel-sql.sourceforge.net/
或使用开源纯Java DBMS的一部分,如SmallSQL。 http://www.smallsql.de/
Eclipse IDE插件用于验证IDE中的SQL。
答案 1 :(得分:1)
您可以抓取SQL BNF grammar并使用parser generator验证输入。
我相信你必须调整标准语法,这不是微不足道的。 此外,我相信你可以找到更好的东西,但我希望上面的内容可以让你到达某个地方。