Oracle
 sql >> Base de données >  >> RDS >> Oracle

Interroger une table imbriquée

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.