Bonjour,
Table AIRPORTS :
Fonction f_test :
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 CREATE OR REPLACE FUNCTION f_test RETURNS SETOF varchar AS $body$ DECLARE vc cursor for select z_rowid from airports where cntcod='BE'; BEGIN FOR vr IN vc LOOP RETURN NEXT vr; END LOOP; RETURN; END; $body$ LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER COST 100 ROWS 1000;Résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT f_test
On peut remarquer les () qui vont me poser des problèmes dans :
qui ne retourne aucun résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select * from airports where z_rowid in (select f_test)
Par contre :
retourne le résultat escompté mais ce n'est pas le top car, en cas de table comportant énormément de records, cela prend un temps considérable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select * from airports where '('||z_rowid||')' in (select f_test)
Quelqu'un a t-il une idée ?
Partager