create or replace function test() return text 
as $$
select name from customers;
$$返回的结果不止一个,我需要得到一个集合或list这个怎么弄阿?哪位大侠指点..

解决方案 »

  1.   

    用个特有的符号分隔开 如返回三个用$分割开 
    a$b$c然后在处理
      

  2.   

    你可以返回一个游标,然后进行处理。CREATE FUNCTION reffunc2() RETURNS refcursor AS '
    DECLARE
        ref refcursor;
    BEGIN
        OPEN ref FOR SELECT col FROM test;
        RETURN ref;
    END;
    ' LANGUAGE plpgsql;BEGIN;
    SELECT reffunc2();      reffunc2
    --------------------
     <unnamed cursor 1>
    (1 row)FETCH ALL IN "<unnamed cursor 1>";
    COMMIT;