【发布时间】:2011-12-06 20:58:41
【问题描述】:
是否有任何 SQL 验证器可以针对多个数据库服务器检查语法?
例如,我可能想检查特定查询是否适用于 Oracle、MySQL 和 SQL Server。
比起查询的实际模式,我更关心 SQL 语法,所以一个可以捕获主要语法错误的工具,比如检测 SQL Server 和 Oracle 不支持 limit 子句就足够了。
编辑:
一些答案建议检查特定 DBMS 或 ANSI 标准的语法。
我正在寻找一种可能性,即在两个或多个数据库(例如 SQL Server 和 Oracle)之间实现某种功能的联合。我希望能够使用我在特定应用程序中定位的所有 DBMS 支持的任何 SQL 功能。
我不确定这是否值得。我认为这取决于几个数据库共享的非 ANSI 功能的数量。如果很少,那么以 ANSI 标准为目标可能会更好。
【问题讨论】:
-
也许 SQLite shell 可以提供帮助。但是 LEFT 和 FULL 连接没有实现,并且与 Oracle 不同,您可以从无到有 SELECT 而在 Oracle 中您必须使用 DUAL。
-
您要为多少个数据库编写代码?或者这是尝试编写一些与数据库无关的中间件?也许为 Oracle 尝试 dbms_sql.parse,对其他 dbms 尝试类似的(?)。
-
它也应该验证每个数据库的哪个版本。
-
@tbone 和其他所有人,请参阅更新后的问题以获得一些说明。
标签: mysql sql sql-server oracle validation