如何在plpgsql函数中返回结果集

王朝mssql·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

postgres的record类型只是一个虚拟的东西,它并没有实际的存储空间,因此结果集合的返回一定要依靠一种实在的表的结构,你或者在定义

函数时候返回一个表或者视图或者象下面的例子一样在调用函数的时候

后面跟着一个表的结构。

说明:表和视图创建成功以后在postgres的类型系统表中会自动增加

以他们的名字命名的类型),也就是说某个表和某个视图其实也是一

种数据类型。

create table mm(a int, b int);

insert into mm values(1,1);

insert into mm values(2,2);

insert into mm values(3,3);

create or replace function mmm() returns setof record as

'

declare

rec record;

begin

FOR rec IN SELECT * FROM mm LOOP

RETURN NEXT rec;

END LOOP;

return NULL;

end;'language 'oplsql';

select a.a,a.b from mmm() a(a int, b int);

a | b

---+---

1 | 1

2 | 2

3 | 3

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航