Jag förstår inte det specifika felet du får, men vanligtvis måste du inkludera en explicit cast till lämplig typ i SQL-satsen:
open O_CURSOR for select * from table(CAST(dados AS t_pontos));
Detta beror på att satsen överlämnas från PL/SQL till SQL-motorn för bearbetning och den har ingen information om typen av variabel utöver att den är användardefinierad.
Dessutom fungerar detta bara om typen (t_pontos
) deklareras på schemanivå, d.v.s. med en CREATE TYPE
påstående. Om det deklareras någonstans i PL/SQL-kod, t.ex. i en paketspecifikation kan SQL-motorn inte komma åt typdefinitionen.