Announcement

Collapse
No announcement yet.

Schleife in Oracle-DB

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Schleife in Oracle-DB

    Ich habe eine Tabelle in einer Oracle 1g-DB, 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!!!

  • #2
    Ich bin auch etwas ratlos. Könntest du die Tabellenstruktur als Tabelle aufschreiben, vielleicht verstehe ich es dann besser?

    Gruß Jürgen

    PS. Es gibt ein Unterforum Oracle. Im obersten Beitrag des SQL-Forums Was gehört in dieses Forums steht, dass hierher nur solche Beiträge gehören, die nicht in ein spezielles Unterforum passen. Also muss das Thema verschoben werden. Bitte mach aber jetzt keine doppelte Frage auf, sondern lass einen Admin verschieben!

    Comment


    • #3
      Vielen dank für den Hinweis, das Unterforum hatte ich nicht gesehen.

      Ich habe mal versucht, die Struktur vereinfacht darzustellen. Vielleicht hilft das weiter.

      SP_A | SP_B| NAME
      2004 | NULL | Testkennungen
      2009 | 2004 | Test_1
      2010 | 2004 | Test_2
      2011 | 2010 | Test_2_2
      Zuletzt editiert von ratloser99; 17.02.2010, 15:50. Reason: Formatierung geändert

      Comment


      • #4
        Hi,

        dazu gibt es in oracle das connect by Konstrukt. Hier findest Du ein Beispiel, dass recht gut zu Deiner Aufgabenstellung passt.

        Dim
        Zitat Tom Kyte:
        I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

        Comment


        • #5
          Na das ist ja einfach! Genial!
          Vielen Dank!

          Comment

          Working...
          X