webentwicklung-frage-antwort-db.com.de

Wie sucht man nach neuen Zeilenzeichen in Oracle-Tabellen?

Ich habe ein Problem mit einer Datei, die aus Daten (im Byte-Format) erstellt wurde, die von der Datenbank zurückgegeben wurden.
Das Problem besteht darin, dass die Datei einige Zeilenumbrüche enthält.
Ich würde gerne wissen, ob es eine Möglichkeit gibt, eine Where-Klausel zu schreiben, um zu überprüfen, ob ein Datensatz einen Zeilenumbruch enthält.

11
meilechh

Suchen Sie mit der CHR-Funktion nach dem Wert für ASCII:

select *
from your_table
where instr(your_text_col, chr(10)) > 0;

Wenn Sie nach Wagenrückläufen suchen möchten, wäre dies chr (13).

21
APC

Sie können etwas schreiben wie:

SELECT id
  FROM table_name
 WHERE field_name LIKE '%'||CHR(10)||'%'
;

(|| ist der Verkettungsoperator; CHR(10) ist das zehnte ASCII - Zeichen, d.h.

5
ruakh

Abhängig von der Plattform ist eine Newline im Allgemeinen entweder CHR(10) (Unix) oder eine CHR(13), gefolgt von einer CHR(10) (Windows). Es gibt andere Optionen für andere esoterische Plattformen, aber in 99,999% der Fälle wird es eine dieser beiden sein.

Sie können die Daten in einer Spalte durchsuchen und nach einem oder beiden Zeichen suchen

SELECT instr( column_name, CHR(10) ) position_of_first_lf,
       instr( column_name, CHR(13) || CHR(10) ) position_of_first_cr_lf
  FROM table_name
 WHERE instr( column_name, CHR(10) ) > 0
5
Justin Cave

Das hat für mich am besten funktioniert. 

select * from label_master wo regexp_like (text, chr (10)); 

0
Anil