Ich schreibe eine Funktion, und ich möchte sie mit Tabellenfunktion umhüllen, so dass ich mit Select-Abfrage verwenden kann.
Hier ist meine Deklaration und einige Zeilen meiner Funktionen
%Vor%Wenn ich die TABLE-Funktion wie unten verwenden möchte, erhalte ich error.ORA-00902: ungültiger Datentyp
%Vor%Kann mir bitte jemand helfen, was ich hier falsch mache?
Vielen Dank im Voraus
Sie versuchen, Typen auf Paketebene in einfacher SQL zu verwenden, was nicht erlaubt ist. Die im Paket deklarierten Typen sind außerhalb von PL / SQL (oder sogar in einfachen SQL-Anweisungen in PL / SQL) nicht sichtbar oder gültig. Eine verkürzte Version von dem, was Sie tun:
%Vor%Selbst wenn Sie innerhalb des Pakets eine Prozedur hatten, die versuchte, die Tabellenfunktion zu verwenden, würde es einen Fehler geben. Wenn Sie hinzugefügt haben:
%Vor% ... die Kompilierung des Paketkörpers würde mit ORA-22905: cannot access rows from a non-nested table item
fehlschlagen.
Sie müssen die Typen auf Schemaebene und nicht in einem Paket deklarieren. Verwenden Sie dazu das SQL create type
-Befehl :
Tags und Links oracle