本篇內(nèi)容主要講解“PostgreSQL函數(shù)如何返回OUT參數(shù)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“PostgreSQL函數(shù)如何返回OUT參數(shù)”吧!
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比輝縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式輝縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋輝縣地區(qū)。費用合理售后完善,十年實體公司更值得信賴。
1、系統(tǒng)表 pg_proc
的字段含義
prorettype :返回值類型
proretset:返回值是否為集合
proargmodes:參數(shù)模式(IN、OUT、INOUT)
2、查找現(xiàn)成的示例
一般我們都能在PG的現(xiàn)有代碼中找到使用方法:
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參數(shù)的函數(shù)定義,'b' 為 INOUT參數(shù)。注意上邊 ::regtype
的用法,增強結(jié)果的可讀性:
pg_stat_get_archiver | {o,o,o,o,o,o,o} | record | 1 pg_event_trigger_table_rewrite_oid | {o} | oid | 1
更多結(jié)果略。
3、多個OUT參數(shù)的返回
打開函數(shù) pg_stat_get_archiver
// 自己定義TupleDesc,數(shù)量不包含IN入?yún)? // 與前邊講過的返回結(jié)果集構(gòu)建方法相同 tupdesc = CreateTemplateTupleDesc(7); // 不一樣的地方 BlessTupleDesc(tupdesc); /* 構(gòu)建 values 和 nulls 數(shù)組 */ // 返回結(jié)果 PG_RETURN_DATUM(HeapTupleGetDatum(heap_form_tuple(tupdesc, values, nulls)));
結(jié)果集函數(shù)在 TupleDescGetAttInMetadata 中調(diào)用 BlessTupleDesc
。
4、返回單個出參
直接調(diào)用 PG_RETURN_xxx
系列返回即可,pg_event_trigger_table_rewrite_oid 函數(shù)中:
PG_RETURN_OID(currentEventTriggerState->table_rewrite_oid);
5、INOUT參數(shù)
官方代碼沒有例子,猜測可以這樣:輸入值用 PG_GETARG_xx
取得,輸出與OUT相同,有興趣可以寫個代碼自己試試。
到此,相信大家對“PostgreSQL函數(shù)如何返回OUT參數(shù)”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
當前題目:PostgreSQL函數(shù)如何返回OUT參數(shù)
URL地址:http://chinadenli.net/article10/ppspgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站導(dǎo)航、搜索引擎優(yōu)化、網(wǎng)站收錄、面包屑導(dǎo)航、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)