Być może już to rozwiązałeś, ale pierwszą rzeczą, jaką zauważyłem w Twojej procedurze składowanej, jest to, że masz zmienną lokalną o tej samej nazwie co zmienna wyjściowa (parent_id
). Wygląda na to, że ustawiasz wartość zmiennej lokalnej, a nie zmiennej zwracanej, więc osoba wywołująca nigdy nie widzi prawidłowej wartości.
Być może usunięcie lokalnego parent_id
deklaracja zmiennej rozwiąże Twój problem.