创建接受任何类型参数的函数(如concat)

时间:2012-05-28 08:33:17

标签: postgresql create-function

如何创建接受任何类型参数的函数。

我可以创建这样的函数: CREATE FUNCTION test(anyelement,anyelement) ...

但是当我调用它时,我必须提出相同类型的参数:

SELECT test(1,2); -- ok

可是:

SELECT test('lalala',2); -- error

我可以创建一个接受任何类型参数的函数,然后将它们转换为字符串并对此字符串执行某些操作。

那么,我可以创建看起来像concat(str "any" [, str "any" [, ...] ])

的函数

UPD:更新了第二个例子

1 个答案:

答案 0 :(得分:2)

有一个简单的替代方案。每种类型都可以转换为text。你可以创建一个函数:

CREATE FUNCTION test(text, text [,text [, ...]]) ...

并称之为:

SELECT test('lalala'::text,2::text);

将每个参数明确地转换为文本。