Funció de taula
Amb això creem estructures tabulars al vol… que es podem consumir com qualsevol taula…
El “problema” d’això es que tot va a memoria, i no torna resultats fins que ho te tot…
CREATE TYPE t_tf_row AS OBJECT (
id NUMBER,
description VARCHAR2(50)
);
CREATE TYPE t_tf_tab IS TABLE OF t_tf_row;
CREATE OR REPLACE FUNCTION get_tab_tf (p_rows IN NUMBER) RETURN t_tf_tab AS
l_tab t_tf_tab := t_tf_tab();
BEGIN
FOR i IN 1 .. p_rows LOOP
l_tab.extend;
l_tab(l_tab.last) := t_tf_row(i, ‘Description for ‘ || i);
END LOOP;
RETURN l_tab;
END;
select t.*, d.* from table(get_tab_tf(5)) t, dual d;
ID | DESCRIPTION | DUMMY |
---|---|---|
1
|
Description for 1 | X |
2
|
Description for 2 | X |
3
|
Description for 3 | X |
4
|
Description for 4 | X |
5
|
Description for 5 | X |