Sdílet prostřednictvím


Známý problém – Aktivita kopírování z Oracle do lakehouse selže u datového typu Číslo

Aktivita kopírování z Oracle do jezera selže, pokud některý ze sloupců z Oracle má datový typ Číslo. V Oracle může být měřítko větší než přesnost pro desetinné nebo číselné typy. Soubory Parquet v Lakehouse vyžadují, aby měřítko bylo menší nebo rovno přesnosti, takže aktivita kopírování selže.

Stav : otevřený

Zkušenosti s produktem : Data Factory

Symptomy

Při pokusu o kopírování dat z Oracle do lakehouse se zobrazí chyba podobná: ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127.

Řešení a alternativní řešení

Tento problém můžete obejít tak, že pomocí dotazu explicitně přetypujete sloupec na NUMBER(p,s) nebo jiné typy, jako je BINARY_DOUBLE. Při použití NUMBER(p,s)se ujistěte, že jsou splněny podmínky p >= s a s >= 0. Oblast definovaná NUMBER(p,s) by mezitím měla zahrnovat oblast hodnot uložených ve sloupci. Pokud ne, zobrazí se chyba podobná ORA-01438: value larger than specified precision allowed for this column. Tady je ukázkový dotaz: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA

Další kroky