Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Pole w pliku danych przekracza maksymalną długość - błąd

Komunikat o błędzie jest spowodowany tym, że dane wczytane z pliku danych są większe niż domyślny bufor znaków sqlldr wynoszący 255, który jest używany, jeśli nie określono CHAR i rozmiaru. Zauważ, że różni się on od rozmiaru kolumny, której odpowiada pole. Na przykład, jeśli mam kolumnę tabeli VARCHAR2(4000), ale nie podawaj jawnie rozmiaru w pliku kontrolnym

cola  not null,

a dane w pliku danych przekraczają 255, ale mają mniej niż 4000 długości, otrzymasz błąd.

Jeśli jednak plik kontrolny określa rozmiar bufora w następujący sposób:

cola char(4000) not null,

wszystko będzie dobrze, jakby tworzyło większy bufor (tutaj pasuje do rozmiaru kolumny). Tak więc, po prostu przyzwyczajaj się, aby zawsze uwzględniać rozmiary kolumn. Oszczędź sobie trochę kłopotów i stwórz funkcję, która wygeneruje dla Ciebie domyślny plik kontrolny... czekaj, wysłałem dla Ciebie mój, spróbuj:https://stackoverflow.com/a/37947714/2543416



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. znajdź nazwy kolumn i nazwy tabel, do których odwołuje się SQL

  2. Funkcja RAWTOHEX() w Oracle

  3. JDBC łączy się z bazą danych Oracle za pomocą SSL

  4. Parsowanie komentarzy XML w Oracle

  5. Generuj losowy ciąg alfanumeryczny z wielkich i małych liter w Oracle