栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

测试使用并返回refcursor的PostgreSQL函数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

测试使用并返回refcursor的PostgreSQL函数

Q1

您的“小测试”可以是普通的SQL:

BEGIN;SELECt get_function_that_returns_cursor('ret', 4100, 'foo', 123); -- note: 'ret'FETCH ALL IN ret; -- works for any rowtypeCOMMIT;  -- or ROLLBACK;

检查结果 执行

COMMIT
/ 。大多数客户端仅显示lat命令的结果。
ROLLBACK
__

本手册的“ 返回光标 ”一章中有更多内容。

第2季

如果我们不知道要返回的行类型,我们该怎么做?

由于您只想检查结果,因此可以 将整个记录投射到

text
。这样,您就可以完全避免该函数的动态返回类型的问题。

考虑这个演示:

CREATE TABLE a (a_id int PRIMARY KEY, a text);INSERT INTO a VALUES (1, 'foo'), (2, 'bar');CREATE OR REPLACE FUNCTION reffunc(INOUT ret refcursor) AS  -- INOUT param :)$func$BEGIN    OPEN ret FOR SELECT * FROM a;END$func$ LANGUAGE plpgsql;CREATE OR REPLACE FUNCTION ctest()  RETURNS SETOF text AS$func$DECLARE    curs1 refcursor;    rec   record;BEGIN  curs1 := reffunc('ret');   -- simple assignment  LOOP    FETCH curs1 INTO rec;    EXIT WHEN NOT FOUND;     -- note the placement!    RETURN NEXT rec::text;  END LOOP;END$func$ LANGUAGE plpgsql;

- > SQLfiddle的



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398502.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号