CREATE OR REPLACE FUNCTION proc_test1()
RETURNS SETOF record AS
$BODY$ declare
v_rc record;
begin for v_rc in select * from test1
loop
return next v_rc;
end loop; return; end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION proc_test1() OWNER TO postgres;
这样没问题,
但是我想返回的是一个我事先定义的表~而不是一个未知类型的,因为我需要的是:别人不知道表的格式也能调用;
所以我得在存储过程中自己定义好表结构,然后返回表.
跪求实现方法,谢谢各位了,小弟万分感激!!!!!!
RETURNS SETOF record AS
$BODY$ declare
v_rc record;
begin for v_rc in select * from test1
loop
return next v_rc;
end loop; return; end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION proc_test1() OWNER TO postgres;
这样没问题,
但是我想返回的是一个我事先定义的表~而不是一个未知类型的,因为我需要的是:别人不知道表的格式也能调用;
所以我得在存储过程中自己定义好表结构,然后返回表.
跪求实现方法,谢谢各位了,小弟万分感激!!!!!!
解决方案 »
- mysqldump --help 显示不了帮助,求解?
- SQL占用时间太长,请帮忙调优
- 如何将DATETIME装换为String类型
- 数据库查询的问题
- 请问这段sql错在哪?mysql的
- jsp插入mysql数据库后乱码,实在没办法了,求救!!!!!!!
- MySql---如何使查询出来的时间字段 显示出 小时/分秒
- 急!mysql中怎样创建一个当前时间的缺省值的字段?
- mysql自动执行的方法
- 如何在bat中实现先后两条mysql命令,运行mysql后导入数据库?
- postgresql 存储过程中遍历的一个小问题
- 300分,高手都来!!,最新1126版 ,MySQL 实现中英文混合排序,离成功只差一步!新手也都来学习一下!!!!!!!
方法如下:
CREATE OR REPLACE FUNCTION proc_test3()
RETURNS SETOF my_table AS
$BODY$ DECLARE
r my_table%rowtype; BEGIN
for r in select * from test1
loop
return next r;
end loop; return;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION proc_test3() OWNER TO postgres;
这样使用的时候就:
select * from proc_test3()
就OK了