Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Abfragen einer verschachtelten Tabelle

Ich verstehe den spezifischen Fehler nicht, den Sie erhalten, aber im Allgemeinen müssen Sie eine explizite Umwandlung in den entsprechenden Typ in die SQL-Anweisung einfügen:

open O_CURSOR for select * from table(CAST(dados AS t_pontos));

Dies liegt daran, dass die Anweisung zur Verarbeitung von PL/SQL an die SQL-Engine übergeben wird und keine Informationen über den Typ der Variablen enthält, außer dass sie benutzerdefiniert ist.

Außerdem funktioniert dies nur, wenn der Typ (t_pontos ) wird auf Schemaebene deklariert, also mit einem CREATE TYPE Aussage. Wenn es irgendwo im PL/SQL-Code deklariert ist, z. in einer Paketspezifikation kann die SQL-Engine nicht auf die Typdefinition zugreifen.