Wie kann ich die Daten abgeschnitten zu passen in ein Feld mithilfe von SQL*Loader? (ORA-12899)

Mithilfe von Oracle SQL*Loader, ich bin versuchen zu laden, eine Spalte, eine variable-Länge-Zeichenfolge (lob) in einer anderen Datenbank in eine varchar2(4000) - Spalte in Oracle. Wir haben die Saiten viel länger als 4000 Zeichen, aber jeder hat zugestimmt, dass diese Zeichenfolgen können und sollten abgeschnitten werden, in der migration (die wir uns angesehen haben auf die Daten, die jenseits von 4000 Zeichen, ist es nicht sinnvoll). Dazu habe ich angegeben, die Spalte wird auf diese Weise in der control-Datei:

COMMENTS CHAR(65535) "SUBSTR(:COMMENTS, 1, 4000)",

Jedoch, SQL*Loader, noch lehnt jede Zeile, wo dieser Datensatz ist länger als 4000 Zeichen in der Datendatei:

Datensatz 6484: Abgelehnt - Fehler in Tabelle LOG_COMMENT, Spalte KOMMENTARE.
ORA-12899: Wert zu groß für Spalte KOMMENTARE (aktuell: 11477, maximum: 4000)

Datensatz 31994: Abgelehnt - Fehler in Tabelle LOG_COMMENT, Spalte KOMMENTARE.
ORA-12899: Wert zu groß für Spalte KOMMENTARE (aktuell: 16212, maximum: 4000)

Datensatz 44063: Abgelehnt - Fehler in Tabelle LOG_COMMENT, Spalte KOMMENTARE.
ORA-12899: Wert zu groß für Spalte KOMMENTARE (aktuell: 62433, maximum: 4000)

Ich versucht, eine viel kleinere Teilstrings, und immer noch die gleichen Fehler. Wie kann ich die control-Datei abschneiden, string Daten, die länger als 4000 Zeichen in ein varchar2(4000) - Spalte?

InformationsquelleAutor John | 2010-06-30

Schreibe einen Kommentar