加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – H2数据库中的Oracle MERGE语句

发布时间:2020-12-12 06:33:08 所属栏目:MsSql教程 来源:网络整理
导读:我们开始在内存数据库中使用H2进行自动化测试.我们使用Oracle进行生产和销售.开发环境.因此,我们的想法是在H2测试数据库中复制表结构,就像在我们的Oracle开发数据库中一样. Oracle SQL语句包括MERGE语句,并在查询中使用表名和USING的别名. 如何以不改变开发环
我们开始在内存数据库中使用H2进行自动化测试.我们使用Oracle进行生产和销售.开发环境.因此,我们的想法是在H2测试数据库中复制表结构,就像在我们的Oracle开发数据库中一样.

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

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

要与H2兼容的Oracle SQL示例,

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

(T1和T2是表的别名)

解决方法

MERGE statement in H2有一个稍微不同,更简单的语法:
MERGE INTO TEST(ID,NAME) KEY(ID)
SELECT 1,'Hello' FROM DUAL

我想你必须写两个语句,一个用于H2,一个用于Oracle.然而,SELECT部分??将是相同的. The Oracle MERGE statement会更长,我相信会是:

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读