我尝试让这个功能运行。当我使用pgadmin并用
手动调用此函数时 SELECT calculate_something(7)
或SELECT common.calculate_something(7)
ERROR: function calculate_something(integer) doesn't exist
hint no function matches the given name and argument types
(翻译自德语)
我已尝试投出电话SELECT calculate_something(cast(7 as bigint));
该功能或演员有什么问题? :/
CREATE OR REPLACE FUNCTION common.calculate_something(id bigint)
RETURNS real AS
$BODY$
DECLARE
some_value_out REAL := 20;
BEGIN
-- I already removed that part for bug fixing and return a constant value (20)
RETURN some_value_out;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
答案 0 :(得分:0)
您的功能是否实际被调用:
stoff_stueckgewicht(id bigint)
或者也许:
stoff_stückgewicht(id bigint)
如果debian和PostgreSQL之间的区域设置不同,后者可能会出现问题。
或者,使用pgAdmin III遍历数据库中所有模式的所有函数,并手动查找该函数。
答案 1 :(得分:0)
使用它来诊断您的问题:
SELECT n.nspname AS schema, p.proname AS function
, pg_get_function_identity_arguments(p.oid) As args
FROM pg_proc p
JOIN pg_namespace n ON n.oid = p.pronamespace
WHERE p.proname LIKE 'calculate%';
并检查您的search_path
:
无论哪种方式,bigint
函数都可以使用数字文字调用 - 默认为integer
,但是注册了bigint
。< / p>