Funkcja i wyświetlanie drzewa

Funkcja i wyświetlanie drzewa
M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
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ć?

superdurszlak
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 2003
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

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
0
Kopiuj
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;
Kopiuj
TYPE myobjectrec1 IS RECORD (
    name VARCHAR2(250),
    master NUMBER,
    parent NUMBER
    );
    
    TYPE myobjecttab1 IS TABLE OF myobjectrec1;
YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2385
1

Powinieneś mieć konstrukcję typu:

Kopiuj
for r in (select ...) loop
  pipe row( konstruktor_obiektu(r) );
end loop;
return;
M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
0

Dzięki, faktycznie o tym zapomniałem :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.