Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle Sql Loader ORA-01722:numero non valido durante il caricamento di file CSV con terminazioni di riga di Windows

Di recente ho riscontrato lo stesso problema durante il caricamento dei dati nella mia tabella tramite file CSV. Il mio file era simile a questo:

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
    )

E come hai detto, continuavo a ricevere lo stesso errore "numero non valido" Si scopre che questo di solito si verifica:quando il tipo di dati della tua colonna è Numero ma i dati che stai ricevendo dal tuo file CSV sono in una stringa, quindi il caricatore di Oracle non riesce a eseguire una conversione di da stringa a numero.- quando il tuo campo nel file CSV è terminato da alcuni delimitatori, diciamo spazio, tabulazioni ecc.

Ecco come ho modificato il mio file 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
    )