PostgreSQL是无法与用户在这种情况下那么友善,有没有什么方法可以自动将文字转换为文本来定义为anyelement的参数?
CREATE FUNCTION foo(anyelement) RETURNS text AS $$
SELECT 'The type is ' || pg_typeof($1);
$$ LANGUAGE SQL IMMUTABLE;
SELECT foo(123); -- OK
SELECT foo('123'::text); -- OK
SELECT foo('123'); -- ERROR
有一个“选项”,一个(低成本)的解决办法,以避免这种中断?
也许一些“自动铸造”的文字到文字转换?在pg9 +没有关于它的消息?
您可以使用显式参数类型为您声明重载函数:CREATE FUNCTION foo(anyelement)RETURNS text AS ...; CREATE FUNCTION foo(text)RETURNS text AS ...;' – Abelisto