1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
CREATE OR REPLACE FUNCTION paginate(
c_query TEXT,
c_page INTEGER
)
RETURNS SETOF RECORD
AS $$
DECLARE
v_query TEXT := c_query;
v_page INTEGER := c_page;
v_one_row RECORD;
BEGIN
FOR v_one_row IN
EXECUTE v_query || ' LIMIT 10 OFFSET ' || CAST(10 * v_page AS VARCHAR(10))
LOOP
RETURN NEXT v_one_row;
END LOOP;
RETURN;
END;
$$ language 'plpgsql';
************************************
SELECT * FROM paginate('SELECT * FROM Country', 1);
************************************
ERROR: a column definition list is required for functions returning "record" |
Partager