Bonjour,

Table AIRPORTS :
Nom : AIRPORTS.jpg
Affichages : 109
Taille : 24,9 Ko

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 :
Nom : SELECT_1.jpg
Affichages : 108
Taille : 11,9 Ko

On peut remarquer les () qui vont me poser des problèmes dans :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select * from airports where z_rowid in (select f_test)
qui ne retourne aucun résultat.

Par contre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select * from airports where '('||z_rowid||')' in (select f_test)
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.

Quelqu'un a t-il une idée ?