【发布时间】:2012-11-22 20:35:43
【问题描述】:
我们开始使用内存数据库中的 H2 进行自动化测试。我们将 Oracle 用于我们的生产和开发环境。所以我们的想法是复制 H2 测试数据库中的表结构,就像它在我们的 Oracle 开发数据库中一样。
Oracle SQL 语句包括 MERGE 语句,并在查询中使用别名作为表名和 USING。
如何动态修改此查询以与 H2 兼容,同时不会改变开发环境中的现有查询?
要与 H2 兼容的 Oracle SQL 示例,
MERGE INTO TABLE T1
USING ( SELECT ....
...........
FROM DUAL) T2
(T1 & T2 是表的别名)
【问题讨论】:
-
您的项目选择了一种不同风格的数据库,一种具有不同 SQL 语法的数据库,用于自动化测试?福特。如果您必须重写您的应用程序以运行您的自动化测试,那么您的测试证明了什么?
-
我们选择H2,因为它可以运行非常快的内存数据库。
-
是的,但是如果它无法运行您在开发和生产中使用的 SQL 语法,那么无论测试运行多快都无关紧要。
-
我看不出为什么这个问题被否决了 - 模拟 Oracle 语句语法 ('MODE=Oracle') 是 H2 的特性,并且在行业中运行快速集成是一种常见且良好的做法对内存数据库进行测试。