我们开始在内存数据库中使用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);
原文地址:https://www.jb51.cc/mssql/78725.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。