Chciałbym zdecydowanie podejrzewasz, że nie chcesz tego zrobić. Dynamiczne tworzenie typów obiektów i budowanie tego rodzaju elastyczności w PL/SQL jest prawie zawsze receptą na ruinę. Skończysz na pisaniu niezwykle skomplikowanego dynamicznego SQL wszędzie (zarówno w funkcjach wywołujących, jak i funkcjach), co sprawi, że Twój kod będzie znacznie trudniejszy do odczytania i debugowania. Kiedy twój kod staje się tak złożony, lepiej jest pisać frameworki, które generują kod, ale to pozostawia cię z dużo trudniejszym problemem pisania kodu, który generuje kod, który rozwiązuje twój problem, a nie tylko pisania kodu, który rozwiązuje twój problem.
To powiedziawszy, jeśli jesteś naprawdę, naprawdę zdeterminowany, możesz zbudować całkowicie ogólna funkcja tabeli potokowej . Wiąże się to z głębokimi, głębokimi czarami przy użyciu frameworka Oracle Data Cartridge. To całkiem fajne. Ale liczba osób, które mogłyby realistycznie wesprzeć i rozszerzyć ten rodzaj kodu, jest bardzo mała.
Mając nieco mniej magii (ale wciąż znacznie więcej niż sugerowałbym dla praktycznie każdej organizacji), możesz zbudować elastyczna funkcja tabeli potokowej który polega na zwracaniu typów ze wstępnie zdefiniowanej hierarchii typów. Jest to bardziej prawdopodobne, ale zakłada, że możesz zbudować hierarchię typów z góry.