如何创建接受任何类型参数的函数。
我可以这样创建函数:
创建函数测试(任何元素,任何元素)...
但是当我调用它时,我必须提供相同类型的参数:
SELECT test(1,2); -- ok
但是:
SELECT test('lalala',2); -- error
我可以创建一个函数来接受任何类型的参数,然后将它们转换为字符串并使用这个字符串做一些事情吗?
那么,我能否创建看起来像 concat(str "any"[, str "any"[, ...] ])
UPD:更新了第二个例子
最佳答案
有一个简单的替代方案。每种类型都可以转换为 text
。您可以只创建一个函数:
CREATE FUNCTION test(text, text [,text [, ...]]) ...
并称它为:
SELECT test('lalala'::text,2::text);
只需将每个参数显式转换为文本即可。
关于postgresql - 创建接受任何类型参数的函数(如 concat),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10781599/