HSQLDB与Oracle的ROWNUM兼容性问题

11

HSQLDB变更日志指出在v2.2.0中添加了ROWNUM()函数,我在使用内存中的HSQLDB运行集成测试时没有遇到任何问题。

然而,我想对真正的Oracle 10g数据库运行相同的测试,但查询失败,因为伪列名称为ROWNUM。有没有一种简单的方法编写单个查询字符串,可在两个环境中使用?

1个回答

21

ROWNUM()函数默认在HSQLDB 2.2.x及更高版本中可用。如果您启用了Oracle语法兼容模式,则还可以使用ROWNUM。

以下语句可启用该功能:

SET DATABASE SQL SYNTAX ORA TRUE

或者使用连接属性 sql.syntax_ora=true


太好了!我不知道那个存在 :-) - andyb
我刚刚发现了一个相关的问题https://dev59.com/qm455IYBdhLWcg3wCPfh - andyb
1
请注意,在连接URL中必须提供 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接