Kjent problem – Kopier aktivitet fra Oracle til Lakehouse mislykkes for datatypen Tall
Kopieringsaktiviteten fra Oracle til et lakehouse mislykkes når en av kolonnene fra Oracle har en Tall datatype. I Oracle kan skalaen være større enn presisjon for desimal-/numeriske typer. Parkettfiler i Lakehouse krever at skalaen er mindre enn eller lik presisjon, slik at kopieringsaktiviteten mislykkes.
status: åpne
produktopplevelse: Data Factory
Symptomer
Når du prøver å kopiere data fra Oracle til et lakehouse, får du en feilmelding som ligner på: ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127
.
Løsninger og midlertidige løsninger
Du kan omgå dette problemet ved å bruke en spørring til å eksplisitt angi kolonnen til NUMBER(p,s)
eller andre typer, for eksempel BINARY_DOUBLE
. Når du bruker NUMBER(p,s)
, må du kontrollere p >= s
og s >= 0
. I mellomtiden bør området som er definert av NUMBER(p,s)
dekke området for verdiene som er lagret i kolonnen. Hvis ikke, får du en feilmelding som ligner på ORA-01438: value larger than specified precision allowed for this column
. Her er en eksempelspørring: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA