Funkcja i wyświetlanie drzewa

0

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

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 :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1