是否有SQL验证器可以针对多个数据库服务器检查语法?
例如,我可能想要检查某个特定的查询是否适用于Oracle、MySQL和SQL Server。
我更关心的是SQL语法而不是被查询的实际模式,所以一个能够捕获主要语法错误的工具就足够了,比如检测SQL Server和Oracle中不支持limit
子句。
编辑:
有几个答案建议检查特定DBMS或ANSI标准的语法。
我正在寻找的是一种针对两个或更多数据库(比如SQL Server和Oracle)之间的功能联合的可能性。我希望能够使用我在特定应用程序中的所有DBMS支持的任何SQL功能。
我不确定这是否值得。我认为这取决于几个数据库共享的非ANSI功能的数量。如果数量很少,那么以ANSI标准为目标可能会更好。
发布于 2011-10-13 19:04:16
我不知道有任何具体的,这些将检查声明是有效的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
(如前所述)如果您的目标是创建数据库不可知系统,请考虑使用第三方工具,例如:entityspace
发布于 2011-10-13 19:09:31
从SQL Server的角度来看,您可以检查语法"for compliance with the FIPS 127-2 standard. This is based on the ISO standard.",而不是针对多个数据库服务器检查SQL语法。
示例:
SET FIPS_FLAGGER 'INTERMEDIATE'
发布于 2011-10-13 19:15:15
对于MySQL:尝试dbForge Studio for MySQL中的automatic SQL syntax check功能。
对于Oracle:dbForge Studio for Oracle中的PL/SQL编辑器
https://stackoverflow.com/questions/7753081
复制相似问题