SELECT get_progressrecord(ID)
gibt eine einzelne Spalte vom Typ record
zurück .
SELECT * FROM get_progressrecord(ID)
gibt mehrere Spalten zurück (die mit Ihrem out
übereinstimmen Parameter).
Abgesehen davon könnte die Tatsache, dass Ihre Ausgabefelder keine Namen haben, die Arbeit mit Ihrer Funktion etwas erschweren. Es gibt auch eine alternative Syntax für RETURNS SETOF RECORD
was ich einfacher finde:
CREATE OR REPLACE FUNCTION get_progressrecord(int)
RETURNS TABLE(
height decimal(5,2),
weight decimal(5,2),
bmi decimal(4,2),
healthStatus text,
age int,
changePercentage decimal(4,2)
) AS
...