2
CREATE FUNCTION foo() RETURNS text
    LANGUAGE plperl
    AS $$
        return 'foo';
$$;

CREATE FUNCTION foobar() RETURNS text
    LANGUAGE plperl
    AS $$
        return foo() . 'bar';
$$;

我正在尝试使用多个函数组合结果,但是当我调用时,foobar()我得到一个空结果。

4

1 回答 1

4

文档中:

PL/Perl 函数不能直接相互调用(因为它们是 Perl 内部的匿名子例程)。

解决方案似乎是将函数作为 postgres 函数调用(使用 spi_query),或者您可以将对函数的引用放在全局可用的哈希中,如此%_SHARED所示

于 2010-04-02T01:28:04.680 回答