使用 HSQL DB 测试插入所有 Oracle 查询

Posted

技术标签:

【中文标题】使用 HSQL DB 测试插入所有 Oracle 查询【英文标题】:Testing Insert All Oracle query with HSQL DB 【发布时间】:2014-12-09 12:00:17 【问题描述】:

我有一个关于如何解决以下问题的疑问。 我得到了一个查询,它尝试使用 INSERT ALL INTO 语句将多行插入到 oracle db 表中。 (并且此语法特定于 ORACLE)。但是我们在测试用例中使用 hsqldb 作为内存数据库。 (仅在测试配置文件中) 问题是 HSQL DB 将不接受 INSERT ALL INTO sql 语法。因此,我们必须跳过此方法的测试用例,或者编写一个插入单个记录的查询并使用 java for 循环调用该查询。有人可以就最好的方法提出建议吗?我假设从 java for 循环调用插入不会对性能造成严重影响,因为循环不会超过大约 20-30 次迭代。任何帮助,将不胜感激。谢谢

【问题讨论】:

【参考方案1】:

Oracle INSERT ALL 允许将多行插入到单个或多个表中。

HSQLDB 允许使用以下语法将多行插入到同一个表中:

INSERT INTO t (col1, col2, col3) VALUES
  ('val1_1', 'val1_2', 'val1_3'),
  ('val2_1', 'val2_2', 'val2_3'),
  ('val3_1', 'val3_2', 'val3_3')

【讨论】:

以上是关于使用 HSQL DB 测试插入所有 Oracle 查询的主要内容,如果未能解决你的问题,请参考以下文章

HSQL 列名包含 #

如何在 hsql 中为另一个架构所有者创建表

异常 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]

SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Ha

SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]

SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase] 错误