我有一个名为person的表,它有id,name,status,我希望通过带有1个参数(名称)的函数返回行
谁能帮我?请放轻松,因为我在postgressql中非常棒.
谁能帮我?请放轻松,因为我在postgressql中非常棒.
create or replace function fn_list(vname varchar) returns void as $$ begin SELECT id,status from usuario WHERE name= vname; end; $$language plpgsql;
解决方法
我知道Oracle中的流水线返回会这样做,所以我用它来从plpgsql中找到’RETURN NEXT’:
http://www.postgresql.org/message-id/[email protected]
同样在grokbase上:
http://grokbase.com/t/postgresql/pgsql-performance/069kcttrfr/pipelined-functions-in-postgres
(编辑以添加官方文档):http://www.postgresql.org/docs/9.2/static/plpgsql-control-structures.html
杀手,我将不得不自己利用这一点.
再编辑一次以添加一些演示代码(直接来自postgresql.org文档):
CREATE TABLE foo (fooid INT,foosubid INT,fooname TEXT); INSERT INTO foo VALUES (1,2,'three'); INSERT INTO foo VALUES (4,5,'six'); CREATE OR REPLACE FUNCTION getAllFoo() RETURNS SetoF foo AS $BODY$ DECLARE r foo%rowtype; BEGIN FOR r IN SELECT * FROM foo WHERE fooid > 0 LOOP -- can do some processing here RETURN NEXT r; -- return current row of SELECT END LOOP; RETURN; END $BODY$ LANGUAGE 'plpgsql' ; SELECT * FROM getallfoo();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。