首页 > 解决方案 > 创建函数 HSQLDB 用户缺少权限或找不到对象

问题描述

我尝试在 hsqldb 中创建一个函数(或例程)来连接字段值,基本上是一个别名,它与具有不同名称和签名的 GROUP_CONCAT 执行相同的操作。

所以我这样写:

CREATE FUNCTION STRING_AGG(field VARCHAR(1000), nothing VARCHAR(1))
   RETURNS VARCHAR(10000)
   RETURN GROUP_CONCAT(field)

并且它说用户缺乏特权或找不到对象:FIELD 试图查看文档或函数创建的其他线程,但没有找到任何帮助。

标签: hsqldb

解决方案


GROUP_CONCAT 是一个聚合函数,不能在 SELECT 语句之外使用。

正如您的评论所示,HyperSQL 允许您定义新的聚合函数,但它不允许额外的非聚合参数。

由于 STRING_AGG 在 PostgreSQL 和 SQL Server 中使用,该函数现在被 HyperSQL 支持。您需要从 SVN 查看最新的 /trunk 代码并构建 jar(请参阅http://hsqldb.org/doc/guide/building-app.html)。


推荐阅读