是否有任何SQL验证器可以检查多个数据库服务器的语法?

时间:2011-10-13 10:59:21

标签: mysql sql sql-server oracle validation

是否有任何SQL验证程序可以检查多个数据库服务器的语法?

例如,我可能想检查特定查询是否适用于Oracle,MySQL和SQL Server。

我更关心SQL语法而不是被查询的实际模式,因此可以捕获主要语法错误的工具,例如检测到SQL Server和Oracle中不支持limit子句就足够了


修改

有几个答案建议检查特定DBMS或ANSI标准的语法。

我正在寻找在两个或更多数据库(比如SQL Server和Oracle)之间定位某种功能联合的可能性。我希望能够使用我在特定应用程序中定位的所有DBMS支持的任何SQL功能。

我不确定这是否值得。我认为这取决于几个数据库共享的非ANSI功能的数量。如果只有极少数,那么最好是以ANSI标准为目标。

4 个答案:

答案 0 :(得分:7)

我不知道有什么特别的,这些将检查这些陈述是否有效ansi 92/99/2003 ...

http://developer.mimer.com/validator/index.htm

这将使你获得99%的胜利(特别是如果只进行CRUD操作)

也许如果您知道哪个保留字被哪个数据库使用,您可以使用自己的简单检查器。 见:How to find if a column name is a reserved keyword across various databases

(如前所述)如果您的目标是创建一个与数据库无关的系统,请考虑使用第三方工具,例如:entityspaces

答案 1 :(得分:2)

从SQL Server的角度来看,您可以检查语法"for compliance with the FIPS 127-2 standard. This is based on the ISO standard.",而不是检查多个数据库服务器的sql语法。

示例:

SET FIPS_FLAGGER 'INTERMEDIATE'

答案 2 :(得分:2)

对于MySQL:在automatic SQL syntax check中尝试dbForge Studio for MySQL功能。

对于dbForge Studio for Oracle

中的Oracle:PL / SQL编辑器

答案 3 :(得分:0)

这是一个在线mysql语法检查程序,但这只是mysql http://www.piliapp.com/mysql-syntax-check/