Prueba esto si te sale un error de tipos
Pregunta
Base de Datos con Postgresql | 3.6 - Creando funcion para paginar resultados
Carlos Hernández Méndez@carlosmdez
Tenía un error cuando intentaba ejecutar la función. Por lo que leí es debido a la versión que tengo, que es más reciente, pero no estoy seguro de eso. Así que investigué y pude lograrlo de esta manera:
-- Función
CREATE OR REPLACE FUNCTION ventas_paginadas(_registros integer, _pagina integer)
RETURNS TABLE (ident smallint, prod character varying)
AS
$BODY$
DECLARE
res integer;
BEGIN
res = _registros * _pagina - _registros;
RETURN QUERY SELECT id, producto FROM productos LIMIT _registros OFFSET res;
END;
$BODY$
LANGUAGE plpgsql;
-- Llamar la función
SELECT * FROM ventas_paginadas(3, 4);