【发布时间】:2011-06-02 12:28:26
【问题描述】:
我正在尝试将 HSQLDB 用作 spring 应用程序中的嵌入式数据库(用于测试)。由于目标生产数据库是Oracle,我想使用HSQLDBs Oracle语法模式特性。
在我使用的 Spring 配置中
<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 语法 ORA TRUE;
但是,在运行我的测试时,我收到以下错误:
java.sql.SQLException: Unexpected token: DATABASE in statement [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
知道这是什么原因造成的吗?
【问题讨论】:
-
您找到解决 StatementCommand 错误的方法了吗?我现在在同一条船上。
-
为什么不使用 H2 db 代替,与 oracle 兼容模式?
标签: hsqldb