Requête dynamique en pagination
Bonjour,
Je suis en train de migrer un base SQLServer en Postgres 8.0.
Pour ce faire, j'ai besoin de développer une fonction qui exécute des requêtes dynamiques et qui "pagine" le résultat.
J'ai fait ça, mais j'ai des erreurs à l'exécution:
Code:
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" |
Un aide serait for appréciée...
Merci.