本篇内容主要讲解“PostgreSQL函数如何返回OUT参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL函数如何返回OUT参数”吧!
创新互联公司-专业网站定制、快速模板网站建设、高性价比辉县网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式辉县网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖辉县地区。费用合理售后完善,十年实体公司更值得信赖。
1、系统表 pg_proc
的字段含义
prorettype :返回值类型
proretset:返回值是否为集合
proargmodes:参数模式(IN、OUT、INOUT)
2、查找现成的示例
一般我们都能在PG的现有代码中找到使用方法:
SELECT proname,proargmodes,prorettype::regtype,array_position(proargmodes, 'o') FROM pg_proc WHERE NOT proretset AND proargmodes IS NOT NULL AND (array_position(proargmodes, 'o') IS NOT NULL OR array_position(proargmodes, 'b') IS NOT NULL) LIMIT 10;
返回包含OUT和INOUT参数的函数定义,'b' 为 INOUT参数。注意上边 ::regtype
的用法,增强结果的可读性:
pg_stat_get_archiver | {o,o,o,o,o,o,o} | record | 1 pg_event_trigger_table_rewrite_oid | {o} | oid | 1
更多结果略。
3、多个OUT参数的返回
打开函数 pg_stat_get_archiver
// 自己定义TupleDesc,数量不包含IN入参 // 与前边讲过的返回结果集构建方法相同 tupdesc = CreateTemplateTupleDesc(7); // 不一样的地方 BlessTupleDesc(tupdesc); /* 构建 values 和 nulls 数组 */ // 返回结果 PG_RETURN_DATUM(HeapTupleGetDatum(heap_form_tuple(tupdesc, values, nulls)));
结果集函数在 TupleDescGetAttInMetadata 中调用 BlessTupleDesc
。
4、返回单个出参
直接调用 PG_RETURN_xxx
系列返回即可,pg_event_trigger_table_rewrite_oid 函数中:
PG_RETURN_OID(currentEventTriggerState->table_rewrite_oid);
5、INOUT参数
官方代码没有例子,猜测可以这样:输入值用 PG_GETARG_xx
取得,输出与OUT相同,有兴趣可以写个代码自己试试。
到此,相信大家对“PostgreSQL函数如何返回OUT参数”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
名称栏目:PostgreSQL函数如何返回OUT参数
新闻来源:http://lswzjz.com/article/ppspgo.html