Non capisco l'errore specifico che stai ricevendo, ma in genere devi includere un cast esplicito nel tipo appropriato nell'istruzione SQL:
open O_CURSOR for select * from table(CAST(dados AS t_pontos));
Questo perché l'istruzione viene trasferita da PL/SQL al motore SQL per l'elaborazione e non contiene informazioni sul tipo di variabile oltre ad essere definita dall'utente.
Inoltre, funziona solo se il tipo (t_pontos
) è dichiarato a livello di schema, cioè con un CREATE TYPE
dichiarazione. Se è dichiarato da qualche parte nel codice PL/SQL, ad es. in una specifica di pacchetto, il motore SQL non può accedere alla definizione del tipo.