我有一个grails应用程序。我们支持Oracle db和H2 db。
我在开发环境中使用prod和H2 DB上的Oracle 11g DB。 我有“listAgg”函数的hibernate查询。它在Oracle上运行良好。 但H2不支持此功能。如何在H2中使用此功能呢?
我认为可以通过自定义方言来完成。但我不明白怎么做。任何人都可以详细解释一下吗?
我看到H2有'group_concat'功能,类似于listAgg。我可以配置我的应用程序,以便'group_concat'用于H2DB而不是listAgg。
Grails 2.3.11。
非常感谢!
答案 0 :(得分:0)
LISTAGG
是Oracle特有的功能。您将无法在其他数据库中使用它。例如,在MSSQL中,替代方法可以是使用STUFF
函数。
如果在H2中需要它,则必须使用此名称定义用户定义的函数,该函数与LISTAGG在Oracle中的作用相同。有关详细信息,请参阅http://www.h2database.com/html/features.html#user_defined_functions