Chybová zpráva je způsobena tím, že data načtená z datového souboru jsou větší než výchozí vyrovnávací paměť znaků sqlldr 255, která se použije, pokud není zadán žádný CHAR a velikost. Všimněte si, že se to liší od velikosti sloupce, kterému pole odpovídá. Pokud mám například sloupec tabulky VARCHAR2(4000), ale neuvádím explicitně velikost v řídicím souboru
cola not null,
a data v datovém souboru přesahují 255, ale jsou kratší než 4000, zobrazí se chyba.
Pokud však řídicí soubor uvádí velikost vyrovnávací paměti takto:
cola char(4000) not null,
vše bude dobré, jako by vytvořilo větší vyrovnávací paměť (zde odpovídá velikosti sloupce). Takže si zvykněte vždy zahrnout velikosti sloupců. Ušetřete si starosti a vytvořte si funkci, která vám vygeneruje výchozí kontrolní soubor...počkej, poslal jsem pro tebe ten můj, zkus to:https://stackoverflow.com/a/37947714/2543416