【问题标题】:Create function HSQLDB user lacks privilage or object not found创建函数 HSQLDB 用户缺少权限或找不到对象
【发布时间】:2021-02-25 10:53:43
【问题描述】:

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

所以我是这样写的:

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

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

【问题讨论】:

  • 我在 hsqldb.org/doc/2.0/guide/guide.html 上看到了带有 group_concatenate 的示例,但是当我尝试修改它以添加第二个参数时,它说聚合的签名功能错误。所以我看不到我如何用 2 个参数(字段和无用的“,”部分)调用它

标签: hsqldb


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 2019-04-02
    相关资源
    最近更新 更多