Mam SELECT, który zwraca drzewko (connect by itp) i sam select działa, bez zarzutu, ale jak wrzuciłem go do funkcji PIPELINED to zwraca mi pustą tabele. Jakieś pomysły co mogłem zepsuć?
0
0
Wrzuć zapytanie i najlepiej jakieś przykładowe dane, np. na jakiś SQL Fiddle lub coś podobnego. Tak to można zgadywać co jest nie tak :P
0
FUNCTION test_xms_myfunction3 (ratingid IN NUMBER)
RETURN myobjecttab1 PIPELINED
IS
gv_v3 myobjecttab1;
BEGIN
SELECT LPAD (' * ', 4 * (LEVEL - 1)) || c.name,
r.master_id,
r.parent_id
BULK COLLECT
INTO gv_v3
FROM tdprules r,
tdpcomponents c,
ttaratingelements
WHERE r.templatecomponent_id = c.id
AND ttaratingelements.eventfilterrule_id = r.master_id
AND ttaratingelements.id = ratingid
START WITH parent_id IS NULL
CONNECT BY PRIOR r.id = r.parent_id;
RETURN;
END test_xms_myfunction3;
TYPE myobjectrec1 IS RECORD (
name VARCHAR2(250),
master NUMBER,
parent NUMBER
);
TYPE myobjecttab1 IS TABLE OF myobjectrec1;
1
Powinieneś mieć konstrukcję typu:
for r in (select ...) loop
pipe row( konstruktor_obiektu(r) );
end loop;
return;
0
Dzięki, faktycznie o tym zapomniałem :)