Zeilenumbruch in Oracle

zuckerbrini

Mitglied
Hi!

Ich hab ein kleines Java Programm geschrieben. In diesem Java Programm habe ich ein Formular, in das der Benutzer verschiedene Werte eingibt, die dann in meine Oracle Datenbank geschrieben werden.
Nun kann der Benutzer in einer TextArea eben auch die "Enter"-Taste drücken und dann weiter schreiben.
Dieser Zeilenumbruch wird auch in die Datenbank geschrieben (im Toad sehe ich das daran, weil ich an der jeweiligen Stelle "||" stehen hab).
Nun möchte ich wissen wie genau Oracle das umsetze:

Schreibt Oracle da \n? Oder was genau macht Oracle?

Ich möcht den Wert eben wieder aus der Datenbank lesen und dann mit einem Java-Befehl indexOf("zeichen") prüfen wo die Enter-Taste gedrückt wurde. Nur weiß ich jetzt eben nicht nach weiß für einem Zeichen ich genau suchen muss.

Hoffe ich habe mich verständlich ausgedrückt und ihr könnt mir helfen.
 
Hi

Also meines Wissens nach, solltest du bei Lesen aus der DB den String wieder korrekt zurück bekommen. Also mit allen Zeilenumbrüchen, wenn vorhanden.
Und nach diesen kannst du auch suchen mit deiner Anwendung.
Falls du den String nur wieder in einer TextBox anzeigen willst, würde es auch reichen, wenn du den String einfach an diese übergibst, das Control stellt den Text dann korrekt dar
 
Schreibt Oracle da \n? Oder was genau macht Oracle?

Oracle macht "nichts". Es speichert den Text exakt so, wie du ihn an die Datenbank weiterleitest. (abgesehen von Zeichensatzkonvertierungen die hier aber keine Rolle spielen.) D.h. es speichert lediglich die ASCII Codes als Zahl, egal welches Zeichen sich dahinter verbirgt.

Wenn dein Programm als Zeilenumbruch ein CRLF (Carriage return, line feed) oder nur ein line feed schreibt sind das die ASCII Zeichen 13 (CR) und/oder 10 (LF).

Das ganze kannst du auch sehr leicht überprüfen, wenn du z.B. in SQL*Plus deine Textspalte selektierst und die Funktion DUMP() ausenrum packst. Oracle zeigt dir dann die exakte Länge in Bytes, sowie jedes einzelne gespeicherte Byte. Wenn du dort die Werte 0D oder 0A findest, dann sind das die Sonderzeichen CR LF. 0D und 0A deshalb, weil das die Hexadezimalschreibweise ist.
 
Zuletzt bearbeitet:
Danke schon mal für eure Hilfe, aber irgendwie komm ich trotzdem nicht weiter.

Wenn ich den Text aus der Datenbank einfach wieder in die JTextArea zurückschreibe, bekomme ich auch die Enter bzw CRLFs an die richtigen Stellen. Nur möchte ich eben diese Enters jetzt ersetzten und statt jeden Enter ein "<br / > schreiben.

Dafür gebe es ja den einfach Befehl replaceAll(String1, String2) der mir jedes vorkommen des Zeichnen String1 durch String2 ersetzt.
Aber ich versteh einfach nicht was ich als String1 einsetzt muss.


Edit:
Soeben gelöst:
replaceAll((char)10, "i");
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück