Schleifen mir PL/SQL

Ich habe eine Tabelle, in der eine Baumstruktur für Nutzergruppen abgebildet ist, das heißt, in Spalte A steht ein Schlüssel für die Gruppe des Nutzers und in Spalte B der Schlüssel für die übergeordnete Gruppe.
Ist die Gruppe aus Spalte A eine Untergruppe, steht in Spalte B der Gruppenschlüssel. Hat die Gruppe aus Spalte A keine Obergruppe, ist das Feld in Spalte B leer.
Ich muss nun die jeweiligen Gruppenschlüssel der Hierarchie nach auslesen und denen Namen zuordnen. Das heißt z.B., für die 3. Ebene:
Lies Spalte A aus, ordne den Schlüssel dem Namen zu und gib diesen aus. Sieh in Spalte B nach, ob es einen Wert gibt, lies diesen aus und gehe in der selben Tabelle in die entsprechende Zeile (= finde den entsprechenden Wert in Spalte A). Hat in dieser Zeile die Spalte B einen Wert NULL, lies diesen aus und gehe in der selben Tabelle in die entsprechende Zeile (= finde den entsprechenden Wert in Spalte A). Hat in dieser Zeile die Spalte B einen Wert NULL, lies diesen aus,… Das soll so lange gehen, bis der Wert in Spalte B NULL ist.

Zum Schluss brauche ich den Nutzernamen, dessen Gruppe und deren Obergruppe. (Eine Untergruppe kann nur eine übergeordnete Gruppe haben)

Das wird wohl irgendwie mit Schleifen gehen, aber ich weiß nicht, wie…
HILFEE!!!

Hallo Ratloser,

schau dir mal in der Oracle-Doku (SQL Reference) das Kapitel und besonders die Beispiele über ‚Hierarchical Query Operators‘ an, damit sollte sich dein Problem relativ einfach lösen lassen, auch ohne PL/SQL.

gruss
bernhard

Das wird wohl irgendwie mit Schleifen gehen, aber ich weiß

nicht, wie…
HILFEE!!!

Hallo,

Wenn du etwas in SQL machen kannst, solltest du nicht PL/SQL verwenden. Du kannst das „connect by“ Konstrukt verwenden :

(Beispiel für das Scott/Tiger Schema)

SELECT employee_name, manager_name, LEVEL
FROM employees
START WITH employee_name = ‚King‘
CONNECT BY PRIOR employee_id = manager_id;

Gruss