我正在尝试编写一个函数来获取与给定regprocedure
变量关联的函数的名称,如下所示:
CREATE OR REPLACE FUNCTION get_funcname(_fn regprocedure)
RETURNS text AS
$func$
SELECT proname::text
FROM pg_catalog.pg_proc AS p
JOIN pg_catalog.pg_namespace AS ns
ON p.pronamespace = ns.oid
WHERE p.oid = _fn;
$func$ LANGUAGE sql;
我希望得到my_func
回报
SELECT get_funcname('my_func(text, variadic text[])');
然而,以上是给我的错误:
ERROR: syntax error at or near "variadic"
LINE 1: SELECT get_funcname('my_func(text, variadic text[])');
^
CONTEXT: invalid type name "variadic text[]"
任何人都可以帮助解释如何修复函数或语法吗?
你有
从文档中,
VARIADIC
这意味着除了您为输入参数指定的内容之外,您不会对参数做任何特殊的事情。在你的情况下,只需放下那个令牌,当然。