Nedávno jsem narazil na stejný problém při načítání dat do mé tabulky prostřednictvím souboru csv. Můj soubor vypadal takto:
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
)
A jak jste zmínili, stále jsem dostával stejnou chybu „neplatné číslo“ Ukázalo se, že k tomu obvykle dochází – když je datový typ sloupce Number, ale data, která získáváte ze souboru csv, jsou v řetězci, takže zavaděč Oracle neprovede konverzi řetězec na číslo.- když je vaše pole v souboru csv ukončeno nějakými oddělovači, řekněme mezerou, tabulátory atd.
Takto jsem změnil svůj soubor 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
)