Oracle
 sql >> Database >  >> RDS >> Oracle

Interrogazione di una tabella annidata

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.