Tôi sẽ mạnh mẽ nghi ngờ rằng bạn không muốn làm điều này. Tự động tạo các kiểu đối tượng và xây dựng kiểu linh hoạt này trong PL / SQL hầu như luôn là công thức dẫn đến sự hủy hoại. Cuối cùng, bạn sẽ phải viết SQL động cực kỳ phức tạp ở khắp mọi nơi (cả trong trình gọi và trong các hàm của bạn), điều này sẽ làm cho mã của bạn khó đọc và gỡ lỗi hơn rất nhiều. Khi mã của bạn trở nên phức tạp, tốt hơn hết bạn nên viết các khung tạo mã nhưng điều đó khiến bạn gặp phải vấn đề khó hơn nhiều là viết mã tạo ra mã giải quyết vấn đề của bạn hơn là chỉ viết mã giải quyết vấn đề của bạn.
Điều đó nói rằng, nếu bạn thực sự, thực sự quyết tâm, bạn có thể xây dựng một chức năng bảng pipelined hoàn toàn chung chung . Điều đó liên quan đến một số thuật sĩ sâu, chuyên sâu bằng cách sử dụng khung Hộp mực Dữ liệu Oracle. Nó khá tuyệt. Nhưng số người thực tế có thể hỗ trợ và mở rộng loại mã này là rất nhỏ.
Với thủ thuật ít hơn một chút (nhưng vẫn còn cách, nhiều hơn cách tôi đề xuất cho hầu hết mọi tổ chức), bạn có thể tạo hàm bảng linh hoạt dựa trên các kiểu trả về từ hệ thống phân cấp kiểu được xác định trước. Điều đó có nhiều khả năng được hỗ trợ nhưng giả định rằng bạn có thể xây dựng hệ thống phân cấp loại của mình từ trước.