J'ai corrigé mon post (j'avais laissé 2 rbat. au lieu de r.)
Vire de ton code tout ce qui est inutile, préfère un FOR LOOP à un Open Curseur (qu'il faut fetcher, fermer, etc..)
Pour débugguer, vire le paramètre de ta fonction, histoire d'avoir un code minimaliste qui marche (et éliminer le max de problème qui pourrait survenir)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| CREATE OR REPLACE FUNCTION "MOUV65"."LOV_AGENT_P10_V2"
return tab_agent_P10 PIPELINED
IS
LBat AGENT_P10 := AGENT_P10 (null, null);
BEGIN
--
FOR C IN (select b.BAT_LIBELLE as display_value, b.BAT_CDN as return_value
from MOUV65.BATIMENT b)
Loop
--manip des données --
LBat.lib_bat := C.BAT_LIBELLE;
LBat.cdn_bat := C.BAT_CDN;
--retour des valeurs --
PIPE ROW (LBat);
END LOOP;
Return;
END; |
SELECT * FROM TABLE ("MOUV65"."LOV_AGENT_P10_V2");
Partager