Erreur à l'exécution plgsql : ERROR: cannot open SELECT query as cursor
Bonjour,
J'ai créé la fonction suivante :
Code:
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:
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=# |