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;
这样没问题,
但是我想返回的是一个我事先定义的表~而不是一个未知类型的,因为我需要的是:别人不知道表的格式也能调用;
所以我得在存储过程中自己定义好表结构,然后返回表.
跪求实现方法,谢谢各位了,小弟万分感激!!!!!!
方法如下:
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了