Spring 即使在设置了Oracle方言之后,也不会对hsql db执行的查询中插入All

Spring 即使在设置了Oracle方言之后,也不会对hsql db执行的查询中插入All,spring,oracle,hsqldb,Spring,Oracle,Hsqldb,我有一个将列表中的数据插入Oracle DB表的查询。查询格式为 Insert All Into Table_A (Column_A, Column_B) Values (Value_A1, Value_B1) Into Table_A (Column_A, Column_B) Values (Value_A2, Value_B2) select * from dual; 当我在Oracle数据库上运行此查询时,它运行良好 但是,当我在测试中对HSQLDB(Spring中的嵌入式DB)执

我有一个将列表中的数据插入Oracle DB表的查询。查询格式为

Insert All 
Into Table_A (Column_A, Column_B) Values (Value_A1, Value_B1) 
Into Table_A (Column_A, Column_B) Values (Value_A2, Value_B2) 
select * from dual;
当我在Oracle数据库上运行此查询时,它运行良好

但是,当我在测试中对HSQLDB(Spring中的嵌入式DB)执行相同的查询时,它抛出一个异常,表示SQL语法不正确

通过指定
SET DATABASE SQL syntax ORA TRUE,我将Oracle语法用于hsql

hsql版本-2.3.2

即使在指定了Oracle方言之后,有人能帮我解释为什么我会面临这个问题吗

我得到的异常堆栈的一部分粘贴在这里-

----------


DEBUG [http-bio-8080-exec-3] (SQLErrorCodeSQLExceptionTranslator.java281) - Unable to translate SQLException with Error code '-5581', will now try the fallback translator
org.springframework.jdbc.BadSqlGrammarException: 
### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: unexpected token: ALL required: INTO : line: 3
### SQL: Insert All         INTO TABLE_A (column_a, column_b) VALUES (?,?)         INTO TABLE_A (column_a, column_b, TABLE_A_active) VALUES (?,?)         select * from dual
### Cause: java.sql.SQLSyntaxErrorException: unexpected token: ALL required: INTO : line: 3
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: unexpected token: ALL required: INTO : line: 3

我不认为
SET DATABASE SQL SYNTAX或TRUE
能够完全支持Oracle SQL语法。据

此属性设置为true时,将启用对非标准类型的支持。它还支持DUAL、ROWNUM、NEXTVAL和CURRVAL语法,并且还允许与该方言的某些其他方面兼容

因此,它似乎对那些Oracle构造提供了有限的支持,但没有为您锁定的完整SQL语法插件提供支持

如果您想跨多个数据库运行SQL,您确实需要某种抽象层,例如Hibernate或QueryDSL