我试图在Spring应用程序中使用HSQLDB作为嵌入式数据库(用于测试).由于目标生产数据库是Oracle,我想使用HSQLDBs Oracle语法模式功能.
在我使用的Spring配置中
Run Code Online (Sandbox Code Playgroud)<jdbc:embedded-database type="HSQL" id="dataSource"> </jdbc:embedded-database> <jdbc:initialize-database data-source="dataSource" enabled="true"> <jdbc:script location="classpath:schema.sql"/> </jdbc:initialize-database>
在顶部的schema.sql中,我写道:
SET DATABASE SQL SYNTAX ORA TRUE;
但是,在运行我的测试时,我收到以下错误:
java.sql.SQLException:意外的标记:语句中的DATABASE [SET DATABASE SQL SYNTAX ORA TRUE]
这是语法错误还是权限错误或完全不同的东西?
谢谢 - 也可以提供任何可能导致答案的指针.
鉴于HSQL是jdbc:embedded-database的Spring默认值,并且鉴于目标是Oracle,这种情况实际上应该是非常常见的.但是,我甚至没有在网上发现任何问题.
更新:
由于答案#1,上述问题得以解决.
但是,我现在得到另一个例外:
org.springframework.dao.DataAccessResourceFailureException:无法填充数据库; 嵌套异常是java.sql.SQLException:java.lang.RuntimeException:不支持的内部操作:StatementCommand不支持的内部操作:StatementCommand
知道这是由什么引起的吗?
我曾与 oracle 合作,在哪里选择特定行范围内的数据,查询是:
SELECT * from TABLE WHERE rownum>0 AND rownum<=10
Run Code Online (Sandbox Code Playgroud)
HSQL 中相应的查询是什么?