Funcions de taula…

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