Postgres-Funktion, die einen Datensatz zurückgibt, während ich viele Datensätze habe?

Ich habe viele Datensätze, die meine einfache Abfrage zurückgibt, aber wenn ich die Funktion verwende, erhalte ich nur den ersten Datensatz.

erstens erstelle ich meinen eigenen Datentyp mit,

CREATE TYPE my_type (usr_id integer , name varchar(30));

und meine funktion ist,

CREATE OR REPLACE function test() returns my_type as $
    declare rd varchar := '21';
    declare personphone varchar := NULL;
    declare result my_type;
    declare SQL VARCHAR(300):=null; 
DECLARE
    radiophone_clause text = '';

BEGIN        
    IF rd IS NOT NULL then
        radiophone_clause = 'and pp.radio_phone = '|| quote_literal(rd);
    END IF;

    IF personphone IS NOT NULL then      
        radiophone_clause = radiophone_clause|| 'and pp.person_phone = '|| quote_literal(personphone);
    END IF;
    radiophone_clause = substr(radiophone_clause, 5, length(radiophone_clause)- 4);

     EXECUTE format('select pt.id,pt.name from product_template pt inner join product_product pp on pt.id=pp.id where %s ;', radiophone_clause) into result.id,result.name ;
    return result;
END;
$ LANGUAGE plpgsql;

In dieser Funktion gebe ich my_type zurück, das nur die erste Zeile zurückgibt, wie man mehr als eine Zeile zurückgibt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage