postgres=# SELECT my_func(ARRAY[2,3]);
ERROR: function my_func(integer[]) does not exist
LINE 1: SELECT my_func(ARRAY[2,3]);
^
HINT: No function matches the given name and argument types. You might need to add explicit typ
e casts.
型 调用my_func()会得到如下错误:
postgres=# SELECT my_func();
ERROR: function my_func() does not exist
LINE 1: SELECT my_func();
^
HINT: No function matches the given name and argument types. You might need to add explicit type
casts.
apple=#
3条答案
按热度按时间mkh04yzy1#
可变参数函数是那些具有未定义数量的参数的函数,它们存在于许多编程和查询语言中。
对于PostgreSQL,你可以在http://www.postgresql.org/docs/9.1/static/xfunc-sql.html(35.4.5.参数个数可变的SQL函数)中找到一个例子:
实际上,在VARIADIC位置处或超出VARIADIC位置的所有实际参数都被收集到一个一维数组中,就像您编写了
gtlvzcf82#
当你不确定参数的数量时,我们使用Variadic。
您可以参考VARIADIC FUNCTIONS IN POSTGRESQL了解详细信息。
参见有关Variadic functions的wiki:
在计算机程序设计中,变元函数(Variadic function)是一种不定元函数,也就是接受可变数量的参数的函数。
sdnqo3pr3#
VARIADIC
参数可以从调用方获取数组。例如,在如下所示的函数中使用
VARIADIC
参数。*VARIADIC
参数必须是最后一个参数,否则会出现错误:字符串
或者:
型
然后,调用
my_func(2, 3)
返回5
,如下所示。您必须向VARIADIC
参数传递一个参数,否则会出现错误:型
小心,调用
my_func(ARRAY[2,3])
会得到如下错误:型
调用
my_func()
会得到如下错误:型