sql >> Databasteknik >  >> RDS >> Oracle

Fältet i datafilen överskrider maximal längd - fel

Felmeddelandet beror på att data som läses in från datafilen är större än sqlldrs standard teckenbuffert på 255 som används om ingen CHAR och storlek anges. Observera att detta är annorlunda än storleken på kolumnen som fältet motsvarar. Till exempel, om jag har en tabellkolumn med VARCHAR2(4000), men inte uttryckligen anger en storlek i kontrollfilen

cola  not null,

och data i datafilen överstiger 255 men är mindre än 4000 långa, får du felet.

Men om kontrollfilen anger buffertstorleken så här:

cola char(4000) not null,

allt blir bra som om det skapar en större buffert (här matchar den kolumnstorleken). Så ta för vana att alltid ta med kolumnstorlekarna. Spara dig själv lite krångel och skapa en funktion för att generera en standardkontrollfil åt dig...vänta jag lade upp min åt dig, prova:https://stackoverflow.com/a/37947714/2543416



  1. Återställ rotlösenordet för MySQL Server

  2. Anropa en databasvy i Yii med Active Record

  3. Oracle SQL för kontinuerlig gruppering

  4. Ta bort ASCII Extended Characters 128 och framåt (SQL)