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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.