Ostatnio napotkałem ten sam problem podczas ładowania danych do mojej tabeli za pomocą pliku csv. Mój plik wyglądał tak:
LOAD DATA
infile '/ipoapplication/utl_file/LBR_HE_Mar16.csv'
REPLACE
INTO TABLE LOAN_BALANCE_MASTER_INT
fields terminated by ',' optionally enclosed by '"'
(
ACCOUNT_NO,
CUSTOMER_NAME,
LIMIT,
REGION,
TERM_AGREEMENT INTEGER EXTERNAL
)
I jak wspomniałeś, ciągle otrzymuję ten sam błąd „nieprawidłowa liczba”. Okazuje się, że to się zwykle zdarza – gdy typ danych kolumny to Liczba, ale dane, które otrzymujesz z pliku csv, są w ciągu, więc program oracle loader nie może wykonać konwersji ciąg na numer.- gdy twoje pole w pliku csv jest zakończone pewnymi ogranicznikami, powiedz spację, tabulatory itp.
Oto jak zmieniłem mój plik ctl:
LOAD DATA
infile '/ipoapplication/utl_file/LBR_HE_Mar16.csv'
REPLACE
INTO TABLE LOAN_BALANCE_MASTER_INT
fields terminated by ',' optionally enclosed by '"'
(
ACCOUNT_NO,
CUSTOMER_NAME,
LIMIT,
REGION,
TERM_AGREEMENT INTEGER Terminated by Whitespace
)