如何创建接受任何类型参数的函数。
我可以创建这样的函数:
CREATE FUNCTION test(anyelement,anyelement) ...
但是当我调用它时,我必须提出相同类型的参数:
SELECT test(1,2); -- ok
可是:
SELECT test('lalala',2); -- error
我可以创建一个接受任何类型参数的函数,然后将它们转换为字符串并对此字符串执行某些操作。
那么,我可以创建看起来像concat(str "any" [, str "any" [, ...] ])
UPD:更新了第二个例子
答案 0 :(得分:2)
有一个简单的替代方案。每种类型都可以转换为text
。你可以创建一个函数:
CREATE FUNCTION test(text, text [,text [, ...]]) ...
并称之为:
SELECT test('lalala'::text,2::text);
将每个参数明确地转换为文本。