Les vues matérialisées sont souvent taquines pour ne pas dire autre chose.
Les seules fonctions autorisées pour une vue matérialisée sont les fonctions de type DETERMINISTIC. Autrement dit qui retournent toujours le même résultat pour une même série de paramètres donnés.
Pour déclarer ta fonctions en tant que tel il suffit de rajouter le mot DETERMINISTIC après le typage de ton return dans la déclaration :
function toto(coco in varchar2) return varchar2 is ...
devient :
function toto(coco in varchar2) return varchar2 deterministic is ...
Maintenant reste à voir si ta fonction réponds bien aux critères d'une fonction de type DETERMINISTIC.
Autre point, il te faut obligatoirement dans ce cas ajouter l'option ENABLE QUERY REWRITE à la déclaration de ta vue matérialisée.
Partager