1

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

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

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

SELECT test(1,2); -- ok

但:

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

我可以创建一个函数来接受任何类型的参数,然后将它们转换为字符串并用这个字符串做一些事情。

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

UPD:更新了第二个示例

4

1 回答 1

2

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

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

并称之为:

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

只需将每个参数显式转换为文本即可。

于 2012-05-28T09:20:54.507 回答