我有一个grails应用程序。我们支持Oracle数据库和H2数据库。

我在产品上使用Oracle 11g DB,在开发环境上使用H2 DB。
我有带有“listAgg”功能的休眠查询。它在Oracle上运行良好。
但是H2不支持此功能。我也可以在H2上使用此功能吗?

我认为可以通过自定义方言来完成。但是我不知道如何。谁能详细解释?

我看到H2具有类似于listAgg的“group_concat”功能。我可以配置我的应用程序,以便将“group_concat”用于H2DB而不是listAgg。

Grails 2.3.11。

非常感谢!

请您参考如下方法:

LISTAGG是特定于Oracle的函数。您将无法在其他数据库中使用它。例如,在MSSQL中,替代方法可能是使用STUFF函数。

如果在H2中需要它,则必须使用此名称定义用户定义的函数,该函数的作用与LISTAGG在Oracle中的作用相同。有关详细信息,请参见http://www.h2database.com/html/features.html#user_defined_functions


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!