HSQLDB变更日志指出在v2.2.0
中添加了ROWNUM()
函数,我在使用内存中的HSQLDB运行集成测试时没有遇到任何问题。
然而,我想对真正的Oracle 10g数据库运行相同的测试,但查询失败,因为伪列名称为ROWNUM
。有没有一种简单的方法编写单个查询字符串,可在两个环境中使用?
HSQLDB变更日志指出在v2.2.0
中添加了ROWNUM()
函数,我在使用内存中的HSQLDB运行集成测试时没有遇到任何问题。
然而,我想对真正的Oracle 10g数据库运行相同的测试,但查询失败,因为伪列名称为ROWNUM
。有没有一种简单的方法编写单个查询字符串,可在两个环境中使用?
ROWNUM()函数默认在HSQLDB 2.2.x及更高版本中可用。如果您启用了Oracle语法兼容模式,则还可以使用ROWNUM。
以下语句可启用该功能:
SET DATABASE SQL SYNTAX ORA TRUE
或者使用连接属性 sql.syntax_ora=true
sql.syntax_ora=true
,例如<property name="hibernate.connection.url" value="jdbc:hsqldb:mem:spring;sql.syntax_ora=true"/>
,而不是在<property name="sql.syntax_ora" value="true"/>
中。 - Julien Kronegg