ratloser99
Grünschnabel
Hallo zusammen,
es ist bestimmt total einfach, aber ich krieg's irgendwie nicht hin, in einer Oracle 10g-DB den String, den ich von einem String aus der selben Tabelle erzeugt habe, in das passende Feld einzufügen.
Hier ist die Tabellenstruktur der Tabelle tmp_group, wie sie zum Schluss aussehen soll:
group_path || group
.Schulung || Schulung
.Schulung.Test || Test
.Schulung.Test2 || Test2
.Schulung.Test2.Test2_2 || Test2_2
.Testkennungen || Testkennungen
Ich brauche also nur den rechten Teil des Strings aus group_path bis zum ersten Punkt von rechts. Das bekomme ich so:
Mein Problem ist nun, wie ich in die Zeile des Pfades die richtige Gruppe einfüge. Das geht sicherlich mit einem UPDATE, aber das folgende Statement liefert mir nicht das gewünschte Ergebnis:
Ich bekomme kein eindeutiges Ergebnis aus dem SELECT.
Wie kann ich das lösen?
es ist bestimmt total einfach, aber ich krieg's irgendwie nicht hin, in einer Oracle 10g-DB den String, den ich von einem String aus der selben Tabelle erzeugt habe, in das passende Feld einzufügen.
Hier ist die Tabellenstruktur der Tabelle tmp_group, wie sie zum Schluss aussehen soll:
group_path || group
.Schulung || Schulung
.Schulung.Test || Test
.Schulung.Test2 || Test2
.Schulung.Test2.Test2_2 || Test2_2
.Testkennungen || Testkennungen
Ich brauche also nur den rechten Teil des Strings aus group_path bis zum ersten Punkt von rechts. Das bekomme ich so:
Code:
Select
Reverse(Substr(Reverse(group_path),1, INSTR(Reverse(group_path),'.')-1) )
from
tmp_group
Mein Problem ist nun, wie ich in die Zeile des Pfades die richtige Gruppe einfüge. Das geht sicherlich mit einem UPDATE, aber das folgende Statement liefert mir nicht das gewünschte Ergebnis:
Code:
UPDATE
tmp_group
SET
group = (Select
Reverse(Substr(Reverse(group_path),1, INSTR(Reverse(group_path),'.')-1) )
from
tmp_group
)
Wie kann ich das lösen?