sql >> Databáze >  >> RDS >> Oracle

Oracle Sql Loader ORA-01722:neplatné číslo při načítání souboru CSV s koncovkami řádků Windows

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
    )


  1. Lomítka v tabulkách MySQL, ale pomocí PDO a parametrizovaných dotazů. Co se děje?

  2. Postgresql. CREATE CAST 'character varying' to 'integer'

  3. Umožněte upravit zobrazení SQL

  4. Kdy je lepší ukládat příznaky jako bitovou masku, než používat asociativní tabulku?