Si no tienes un type, encontes revisa esto, haber si te sirve como ejemplo:
Código PostgreSQL:
Ver originalCREATE OR REPLACE FUNCTION domo_getlookupdata(pstrtabla character varying, pstrcampolookup character varying, pintidregistro numeric)
RETURNS VARCHAR AS
$BODY$
DECLARE
campo1 ALIAS FOR $1; -- Toma los valores de las variables
campo2 ALIAS FOR $2;
campo3 ALIAS FOR $3; -- Si el campo es Entero mandalo como INT4, para que no tengas que castearlo de CHAR a INT
reg RECORD; -- El type a regresar
cSql VARCHAR(4000);
cCampoRetorno VARCHAR(5000);
BEGIN
IF pintIdRegistro != 0 then
cSql := 'SELECT id_' || campo1 || ' , ' || campo2 || '
FROM ' || campo1 || '
WHERE id_'||campo1||' = ' || campo3 || '
ORDER BY ' || campo2 || ' ';
ELSE
cSql := 'SELECT id_' || campo1 || ' , ' || campo2 || '
FROM ' || campo1 || '
ORDER BY ' || campo2 || ' ';
END IF;
FOR reg IN execute cSql
LOOP
RETURN NEXT reg; -- Solo asigna los valores en el orden que tengas el TYPE
END LOOP;
sCampoRetorno = reg.id_Campo1 ||' ' || reg.Campo2
RETURN sCampoRetorno;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Suerte