Bonjour,

J'ai créé la fonction suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
CREATE OR REPLACE FUNCTION pses(xcrit varchar, xidart integer)
RETURNS TABLE(lib VARCHAR(100), ref varchar(50),stki1 numeric(13,2)) 
AS 
$$
BEGIN
   RETURN QUERY EXECUTE 'select stki1 into stki1 from f0011 where idart=' || xidart; <-- Source d'erreur

   RETURN QUERY EXECUTE 'SELECT  design1,ref,stki1 
                                  FROM f0011 where design1 like ' || E'\'' || xcrit || E'\'';
   RETURN;
END;
$$ LANGUAGE plpgsql;

La fonction est créée avec succès, mais à l'exécution, il retourne le message suivant :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
eydata02=# select * from pses('%ma%',36);                                                 
ERROR:  cannot open SELECT query as cursor
CONTEXT:  PL/pgSQL function pses(character varying,integer) line 3 at RETURN QUERY
eydata02=#