H2 数据库中的 Oracle MERGE 语句

2023-12-29

我们开始使用H2内存数据库进行自动化测试。我们在生产和开发环境中使用 Oracle。因此,我们的想法是复制 H2 测试数据库中的表结构,就像我们的 Oracle 开发数据库中的表结构一样。

Oracle SQL 语句包括 MERGE 语句并在查询中使用表名和 USING 的别名。

如何动态修改此查询以使其与 H2 兼容,而不改变开发环境中的现有查询?

Oracle SQL 示例,与 H2 兼容,

MERGE INTO TABLE T1
USING ( SELECT ....
        ...........
        FROM DUAL) T2

(T1和T2是表的别名)


The H2 中的 MERGE 语句 http://h2database.com/html/grammar.html#merge有一个稍微不同的、更简单的语法:

MERGE INTO TEST(ID, NAME) KEY(ID)
SELECT 1, 'Hello' FROM DUAL

我猜你必须写两条语句,一条用于 H2,一条用于 Oracle。这SELECT不过,部分是相同的。Oracle MERGE 语句 http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016.htm会更长,我相信会是:

MERGE INTO TEST T
USING (SELECT 1 ID, 'Hello' NAME FROM DUAL) D
ON (T.ID = D.ID)
WHEN MATCHED THEN 
UPDATE SET T.NAME = D.NAME
WHEN NOT MATCHED THEN 
INSERT (B.ID, B.NAME) VALUES (D.ID, D.NAME);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

H2 数据库中的 Oracle MERGE 语句 的相关文章

随机推荐