PostgreSQL中VARIADIC函数如何使用
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天就跟大家聊聊有关PostgreSQL中VARIADIC函数如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、示例CREATE OR
千家信息网最后更新 2026年11月03日PostgreSQL中VARIADIC函数如何使用
今天就跟大家聊聊有关PostgreSQL中VARIADIC函数如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1、示例
CREATE OR REPLACE FUNCTION test_v(p1 int, VARIADIC p2 any[])RETURNS void AS$test_v$BEGINNULL;END;$test_v$LANGUAGE plpgsql;
这里,VARIADIC参数必须是数组,而数组
2、使用
调用方式1
SELECT test_v(1,2,3);
调用方式2
SELECT test_v(1,VARIADIC '{2,3,4}'::int[]);第一种方式其实在语义层会转换成第二种方式,这些逻辑在函数 ParseFuncOrColumn 中,有兴趣可以自行查看。
3、第二种调用方式的语法
| func_name '(' VARIADIC func_arg_expr opt_sort_clause ')' { FuncCall *n = makeFuncCall($1, list_make1($4), @1); n->func_variadic = true; n->agg_order = $5; $$ = (Node *)n; } | func_name '(' func_arg_list ',' VARIADIC func_arg_expr opt_sort_clause ')' { FuncCall *n = makeFuncCall($1, lappend($3, $6), @1); n->func_variadic = true; n->agg_order = $7; $$ = (Node *)n; }只是指定这是VARIADIC函数调用,参数并没有特别处理。
4、实际参数列表
在语法层,第一张调用方式有三个常量参数:整型 整型 整型,而第二种则是两个参数:整型 整型数组。第一种调用方式在上边说的 ParseFuncOrColumn 函数中,后两者合并为一个参数:数组表达式(ArrayExpr)。
5、不能多种参数类型混合
我们可以实现 func(int, int, int ...),但无法实现 func(int, text, int, text ...),数组不允许这么做,在语义层就会报错无法继续。
当然,这个限制并不会影响我们使用PG,并不会因为它函数就没法定义。主要的影响是迁移,比如Oracle应用会用到decode这样的函数,在现有机制下,并没有比较完美的方案去实现。
6、PL/pgSQL
文档中似乎没有提到PL/pgSQL对VARIADIC参数的支持(也许有,没仔细看),但它是可以处理的。而且从上边看,VARIADIC参数最后传递的是一个数组而已,不是什么特别的东西。
回归测试中的示例:
-- test variadic functionscreate or replace function vari(variadic int[])returns void as $$begin for i in array_lower($1,1)..array_upper($1,1) loop raise notice '%', $1[i]; end loop; end;$$ language plpgsql;
看完上述内容,你们对PostgreSQL中VARIADIC函数如何使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
参数
函数
方式
数组
内容
上边
示例
语义
语法
影响
支持
三个
东西
两个
兴趣
只是
多种
实际
常量
文档
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海卓越科技互联网
互联网科技网
河南云网互联网络科技有限公司
蓝思科技飞鸽互联网
互联网科技官网
互联网 科技
睿民互联网科技
奔汉互联网科技
互联网科技有限公司 翻译
深圳卡尔迅互联网科技有限公司怎么样
滨湖区互联网智能科技产品供应
互联网科技博主是什么意思
温州喔噻互联网科技有限公司
青海科技产业互联网发展
国大互联网教育科技有限公司薪资
领航科技大厦互联网公司
中国新注册互联网科技
版纳互联网科技选哪家
盐城市攀科互联网科技有限公司
科技美学互联网 艺术
互联网金融与金融科技
丰台科技园 互联网
上海亿帐通互联网科技
互联网科技公司的市场部门
互联网教育科技公司vipkid
消费医药和互联网科技
深圳艾果互联网通讯科技
无锡工业互联网科技有限公司
江苏互联网智能科技软件
众联互联网络科技