Tidak perlu definisi SYS_CONTEXT atau kursor. Anda memang memerlukan tipe sehingga, ketika SQL diuraikan, itu dapat menentukan kolom mana yang akan dikembalikan. Yang mengatakan, Anda dapat dengan mudah menulis skrip yang akan menghasilkan definisi tipe dan kumpulan tipe untuk satu atau beberapa tabel berdasarkan data di kolom_tab_pengguna.
Yang terdekat adalah
create table my_table
(prodid number, a varchar2(1), b varchar2(1),
c varchar2(1), d varchar2(1), e varchar2(1));
create type my_tab_type is object
(prodid number, a varchar2(1), b varchar2(1),
c varchar2(1), d varchar2(1), e varchar2(1))
.
/
create type my_tab_type_coll is table of my_tab_type;
/
create or replace function get_some_data (p_val in number)
return my_tab_type_coll pipelined is
begin
FOR i in (select * from my_table where prodid=p_val) loop
pipe row(my_tab_type(i.prodid,i.a,i.b,i.c,i.d,i.e));
end loop;
return;
end;
/
SELECT * FROM table(get_Some_Data(3));