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

标签 postgresql create-function

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

我可以这样创建函数: 创建函数测试(任何元素,任何元素)...

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

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/

相关文章:

mysql - 如何使用 CakePHP 创建用户定义的 sql 函数?

sql - 这个 PostgreSQL 函数不应该返回零行吗?

sql - 在 postgres 的第一个表上左连接预过滤

php - 在 PostgreSQL 中插入数据

创建函数时出现 MySQL 错误 1064

传递给 create_function 的 PHP 沙箱/清理代码

sql - PostgreSQL 在行中找到不一致的记录

ruby - 尝试生成一个随机字符串以作为 client_number 保存到 PG 表 Rails 4,PGSQL

sql - 以格林威治标准时间生成日期的所有分钟并获取其本地值