PL/SQL --> String zerlegen
lukas
- datenbank
0 Vinzenz Mai0 lukas
0 Ilja
Hallo zusammen!
Ich habe ein kleines Problem. In einem Feld werden einträge gespeichert, die mit einem ; getrennt werden. Und nun möchte ich den String in Einzelteile zerlegen.
Beispiel:
test1; test2; test3; test4
Jetzt kann es ja auch sein, dass man folgendes im Datenbankfeld stehen würde:
Variante 1:
test1
Variante 2.
test1; test2
Variante 3:
Test1; test2;
Wie kann man so etwas lösen?
Hallo Lukas,
Ich habe ein kleines Problem. In einem Feld werden einträge gespeichert, die mit einem ; getrennt werden.
meiner Meinung nach sieht das nach einem Fehler in der Tabellenstruktur aus. Es scheint mir, dass hier mehrere Daten in einem Feld gespeichert werden sollen. Daten sollten atomar vorliegen.
Wie kann man so etwas lösen?
Am besten durch eine bessere Datenbankstruktur.
Freundliche Grüße
Vinzenz
Ja aber das ist so vorgegeben.
yo,
Ich habe ein kleines Problem. In einem Feld werden einträge gespeichert, die mit einem ; getrennt werden. Und nun möchte ich den String in Einzelteile zerlegen.
mit der funktion rtrim solltest du erst einmal das ';' zeichen am ende des strings wegbekommen können. meiner meinung nach kennt PL/SQL keine so nützliche funtion wie explode bei php, müsste aber dafür selber nachschauen, um es genau zu wissen (Version wäre nützlich).
also musst du mit einer schleife den string durchlaufen, bis das letzte semikolon gefunden wurde. innerhalb der schleife kannst du folgende funktionen benutzen.
INSTR, um das die position des nächste ';' zeichen zu ermitteln
SUBSTR, um den string beim gefundenen ';' abzuschneiden
Ilja