Oracle String aus Column splitten und x Rows daraus erstellen

Maliko

Bekanntes Mitglied
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:

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:

ProfilidRecht
1Recht1
1Recht2
1Recht3
1Recht4
2Recht1
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
 

httpdigest

Top Contributor
Ein klein wenig Googlen und Stackoverflown brachte:
- https://stackoverflow.com/questions/19195280/connect-by-clause-in-regex-substr#answer-19195465
- https://lalitkumarb.wordpress.com/2014/12/02/split-comma-delimited-string-into-rows-in-oracle/
Wenn du das Update tatsächlich in einer einzigen SQL Query ausführen willst und keine externe Programmiersprache verwenden willst, mit der du z.B: Zeile-für-Zeile migrierst mit separaten Statements, dann benötigst du Oracles REGEXP_SUBSTR sowie CONNECT BY.
In dem Stackoverflow-Beispiel wird ein Literal als String benutzt, aber du müsstest stattdessen natürlich einfach eine Projektion auf die in Frage kommende Spalte machen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
T JPA: Nach String statt Primärschlüssel suchen Datenbankprogrammierung 9
C String in Datenbank einfügen Datenbankprogrammierung 11
E Conversion failed when converting date and/or time from character string. Datenbankprogrammierung 3
D String übergeben Datenbankprogrammierung 7
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
M SQLite Suche nach String Datenbankprogrammierung 4
C Objekte aus DB in Strings umwandeln also von List<Objekt> in String Datenbankprogrammierung 6
A ByteArray zu String dann wieder zu ByteArray Datenbankprogrammierung 2
D HSQLDB SQL ORDER BY nur mit fixen String machbar? Datenbankprogrammierung 16
F Dynamischen String in SQL Statement einbinden Datenbankprogrammierung 9
N String Array in While Schleife befüllen Datenbankprogrammierung 2
H Derby: SYSCS_UTIL.SYSCS_EXPORT_QUERY mit String Abfrage in wehre-Klausel nicht möglich Datenbankprogrammierung 3
R Zeichenkette in String zählen Datenbankprogrammierung 3
P GWT Applikation-The method forName(String) is undefined for the type Class Datenbankprogrammierung 10
B Mysql speichert keine 0 alls String Datenbankprogrammierung 11
B MySQL Datenbank Connection als String zurückgeben Datenbankprogrammierung 7
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
I DB-Zelleninhalt mit String vergleichen klappt nicht Datenbankprogrammierung 3
I SQL_Abfrage-Ergebnis (ResultSet) in String[] speichern Datenbankprogrammierung 29
M SQL String Datenbankprogrammierung 2
G Sonderzeichen im String codieren Datenbankprogrammierung 4
K Date in SQL-String konvertieren Datenbankprogrammierung 3
B String aus txtDatei auslesen und in Datenbank schreiben. Datenbankprogrammierung 8
T Mittels SQL-String ein Berechnung vornehmen Datenbankprogrammierung 2
C SQL String zwei Tabellen vergleichen und gleiche Zeile löschen Datenbankprogrammierung 25
C Split String für SQl query Datenbankprogrammierung 10
J String[] in eine SQL-Anweisung implementieren Datenbankprogrammierung 13
F ResultSet to String[] Datenbankprogrammierung 3
S Connection String MS Access mit Systemdatenbank / Arbeitsgruppeninformationsdatei Datenbankprogrammierung 4
G Hilfe um String an Datenbank zu schicken Datenbankprogrammierung 3
M SELECT longtext -> als String behandeln Datenbankprogrammierung 6
G Daten aus ResultSet in String-Liste Datenbankprogrammierung 13
padde479 Connection String Oracle Datenbankprogrammierung 5
T SQL Date String in java.util.Date umwandeln Datenbankprogrammierung 3
G ResultSet: String mit Anführungszeichen einlesen Datenbankprogrammierung 8
A JPA + @OneToMany + String ArrayList Datenbankprogrammierung 4
S Char to String aus DB Datenbankprogrammierung 2
Q string Vergleich Datenbankprogrammierung 2
M Konvertierung eines Ojects to String Datenbankprogrammierung 3
M Preparedstatement SQL-string auslesen Datenbankprogrammierung 13
D INSERT String enthält ' wie kann man das Escapen? Datenbankprogrammierung 4
G MsSQL | Statement.execute(String s) Datenbankprogrammierung 3
G CLOB to String - Encoding Problem Datenbankprogrammierung 6
D String[][] Array in Access Datenbank speichern Datenbankprogrammierung 5
K Hibernate: Liste von String-Werten Datenbankprogrammierung 2
S String probleme Datenbankprogrammierung 3
R Nach String in MySQL datenbank suchen Datenbankprogrammierung 7
M Datum's String in MSSQL oder MySQL wie konvertieren ? Datenbankprogrammierung 3
T String in DB(Oracle) schreiben mit Leerzeichen Datenbankprogrammierung 4
K ResultSet: Erste Zeile ausgeben, Datensatz in String speiche Datenbankprogrammierung 13
E Fehler bei String-Insert in MySQL-DB Datenbankprogrammierung 8
L Datum (String) in MySQL-Tabelle (date) speichern Datenbankprogrammierung 4
C SQLException wenn String auf VARCHAR geschrieben wird Datenbankprogrammierung 10
T Methode getColumnIndex(String columnName) ? Datenbankprogrammierung 6
K string literal too long was tun ? Datenbankprogrammierung 9
D JOIN COLUMN wird nicht genommen Datenbankprogrammierung 2
V SQLite java.sql.SQLException: no such column: Datenbankprogrammierung 18
L Oracle Repräsentative Namen für die Column Types Datenbankprogrammierung 9
Thallius Ist JSON als column jetzt der neue Standard oder hab ich was verpasst? Datenbankprogrammierung 34
Kirby.exe SQL-Exception: Column not found Datenbankprogrammierung 6
S Bestimmten Column finden Datenbankprogrammierung 3
zhermann Data truncation: Incorrect date value: 'null' for column Datenbankprogrammierung 31
OnDemand Column char type, wie befüllen? Datenbankprogrammierung 2
K Derby/JavaDB '<columnName>' is not a column in table or VTI '<value>'. Datenbankprogrammierung 12
L MySQL Column count doesn't match value count at row 1 Datenbankprogrammierung 9
K Unkown Column in where clausel Datenbankprogrammierung 2
F column count doesn't match value count at row 1 Datenbankprogrammierung 6
Z Unknown column 'xxx' in 'field list' Datenbankprogrammierung 2
Kirby.exe Tabellen Zeilen combinen und splitten Datenbankprogrammierung 3
T Oracle Normalisierung und Daten splitten Datenbankprogrammierung 1
Thallius MySQL Tabelle splitten aber wie eine abfragen? Datenbankprogrammierung 10

Ähnliche Java Themen

Neue Themen


Oben