Je ne comprends pas l'erreur spécifique que vous obtenez, mais en général, vous devez inclure un transtypage explicite vers le type approprié dans l'instruction SQL :
open O_CURSOR for select * from table(CAST(dados AS t_pontos));
En effet, l'instruction est transmise de PL/SQL au moteur SQL pour traitement, et elle ne contient aucune information sur le type de la variable au-delà de sa définition par l'utilisateur.
De plus, cela ne fonctionne que si le type (t_pontos
) est déclaré au niveau du schéma, c'est-à-dire avec un CREATE TYPE
déclaration. S'il est déclaré quelque part dans le code PL/SQL, par ex. dans une spécification de package, le moteur SQL ne peut pas accéder à la définition de type.