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