Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Feld in Datendatei überschreitet maximale Länge - Fehler

Die Fehlermeldung liegt daran, dass die aus der Datendatei eingelesenen Daten größer sind als der standardmäßige Zeichenpuffer von sqlldr von 255, der verwendet wird, wenn kein CHAR und keine Größe angegeben sind. Beachten Sie, dass dies anders ist als die Größe der Spalte, der das Feld entspricht. Zum Beispiel, wenn ich eine Tabellenspalte von VARCHAR2(4000) habe, aber nicht explizit eine Größe in der Steuerdatei

angebe
cola  not null,

und die Daten in der Datendatei 255 überschreiten, aber weniger als 4000 lang sind, erhalten Sie den Fehler.

Wenn die Steuerdatei jedoch die Puffergröße wie folgt angibt:

cola char(4000) not null,

alles wird gut sein, als ob ein größerer Puffer erstellt wird (hier entspricht er der Spaltengröße). Gewöhnen Sie sich also an, immer die Spaltengrößen mit einzubeziehen. Sparen Sie sich den Ärger und erstellen Sie eine Funktion, um eine Standard-Steuerdatei für Sie zu generieren ... warten Sie, ich habe meine für Sie gepostet, probieren Sie es aus:https://stackoverflow.com/a/37947714/2543416