Moin,
ich hab da gerade ein kleines Problem in Oracle. Hat jetzt nicht direkt etwas mit Java zu tun, sondern es geht um ein SQL-Query, welches für ein Update der Software benötigt wird, aber vielleicht könnt ihr mir da ja trotzdem weiterhelfen.
Und zwar haben wir eine Tabelle wo in einer Spalte Pro Datensatz X Rechte stehen, welche jeweils durch einen Zeilenumbruch getrennt werden (wenn ich den Idioten finde, der auf diese Idee kam bring ich ihn um). Mein neues System benötigt diese aber mit einem Recht pro Row. Dazu muss ich wenn ich die nicht alle per Hand auseinanderklabustern will ein Query schreiben, welches diese Rechte Splittet und mir für jedes Recht eine Row generiert.
Folgendes habe ich probiert:
Das funktioniert auch. Allerdings bekomme ich so immer nur das erste Recht. Was ich brauche wäre das für jedes Recht das in rechteprofile.rechte steht.
Das Feld rechte ist wie folgt aufgebaut:
Was ich jetzt brächte wäre folgender Aufbau:
Hätte da vielleicht jemand eine Ahnung wie ich da weiter vorgehen muss? Das sprengt meine SQL-Kenntnisse grad etwas.
Vielen Dank schon einmal im Vorraus.
LG
Maliko
ich hab da gerade ein kleines Problem in Oracle. Hat jetzt nicht direkt etwas mit Java zu tun, sondern es geht um ein SQL-Query, welches für ein Update der Software benötigt wird, aber vielleicht könnt ihr mir da ja trotzdem weiterhelfen.
Und zwar haben wir eine Tabelle wo in einer Spalte Pro Datensatz X Rechte stehen, welche jeweils durch einen Zeilenumbruch getrennt werden (wenn ich den Idioten finde, der auf diese Idee kam bring ich ihn um). Mein neues System benötigt diese aber mit einem Recht pro Row. Dazu muss ich wenn ich die nicht alle per Hand auseinanderklabustern will ein Query schreiben, welches diese Rechte Splittet und mir für jedes Recht eine Row generiert.
Folgendes habe ich probiert:
SQL:
select bnprofile.id as bnrechte_id, regexp_substr(rechteprofile.rechte, '.*$', 1, 1, 'm') from rechteprofile
INNER JOIN bnprofile
ON rechteprofile.name = bnprofile.name;
Das funktioniert auch. Allerdings bekomme ich so immer nur das erste Recht. Was ich brauche wäre das für jedes Recht das in rechteprofile.rechte steht.
Das Feld rechte ist wie folgt aufgebaut:
Code:
Recht1
Recht2
Recht3
Recht4
Was ich jetzt brächte wäre folgender Aufbau:
Profilid | Recht |
1 | Recht1 |
1 | Recht2 |
1 | Recht3 |
1 | Recht4 |
2 | Recht1 |
usw |
Hätte da vielleicht jemand eine Ahnung wie ich da weiter vorgehen muss? Das sprengt meine SQL-Kenntnisse grad etwas.
Vielen Dank schon einmal im Vorraus.
LG
Maliko