SQL*Loader: der Umgang mit dem delimiter-Zeichen in Daten

Ich bin laden einige Daten in Oracle über SQLLDR. Die Quell-Datei ist "pipe-delimited".

FIELDS TERMINATED BY '|'

Aber einige Datensätze enthalten, die pipe-Zeichen in Daten, und nicht als Trennzeichen. So bricht es die richtige Beladung der Rekorde als es versteht indata pipe-Zeichen als Feld-terminator.

Können Sie zeigen Sie mir eine Richtung, um dieses Problem zu lösen?

Daten-Datei ist über 9 GB, also ist es schwer zu manuell Bearbeiten.

Beispielsweise

Geladen Zeile:

ABC|1234567|STR 9 R 25/98734959,32/28.12.2011

Abgelehnt Reihe:

DE4|2346543|WIR| 454/956584,84/28.11.2011

Fehler:

Rejected - Error on table HSX, column DATE_N.
ORA-01847: day of month must be between 1 and last day of month

DATE_N Spalte ist die Letzte.

können Sie ein Beispiel setzen der Zeile mit den Problemen?
Sind die Felder mit den Rohren | in Anführungszeichen eingeschlossen ? zum Beispiel DATA1|DATA2|"DATAWITH|PIPE"|DATA3. In diesem Fall können Sie FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
aktualisiert.
Es wäre einfacher, aber die Felder sind nicht von Anführungszeichen eingeschlossen.
In der Regel, dass das, was die OPTIONALLY ENCLOSED BY - Klausel wird; Datenfelder, zu denen auch die Trennzeichen sind beizufügen, die von verschiedenen Trennzeichen.

InformationsquelleAutor bonsvr | 2012-01-20

Schreibe einen Kommentar