Jaa


Tunnettu ongelma : toimintojen kopiointi Oraclesta Lakehouseen epäonnistuu Luvun-tietotyypin kohdalla

Tietojen kopiointi Oraclesta Lakehouseen epäonnistuu, kun jonkin Oraclen sarakkeen tietotyyppi on Number. Oraclessa skaalaus voi olla suurempi kuin desimaali-/numeeristen tyyppien tarkkuus. Lakehousen parquet-tiedostot edellyttävät, että asteikko on pienempi tai yhtä suuri kuin tarkkuus, joten kopiointitoiminto epäonnistuu.

Tila: Avaa

tuotekokemus: Data Factory

Oireet

Kun yrität kopioida tietoja Oraclesta Lakehouseen, saat seuraavanlaisen virheen: ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127.

Ratkaisut ja ratkaisut

Voit kiertää tämän ongelman käyttämällä kyselyä, joka nimenomaisesti muuntaa sarakkeen NUMBER(p,s) tai muille tyypeille, kuten BINARY_DOUBLE. Kun käytät NUMBER(p,s), varmista, että p >= s ja s >= 0. Samaan aikaan NUMBER(p,s) määrittämän alueen pitäisi kattaa sarakkeeseen tallennettujen arvojen alue. Jos näin ei ole, näyttöön tulee ORA-01438: value larger than specified precision allowed for this columnkaltainen virhe. Tässä on esimerkkikysely: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA

Seuraavat vaiheet