Kendt problem – Kopiering af aktivitet fra Oracle til lakehouse mislykkes for datatypen Tal
Kopieringsaktiviteten fra Oracle til et lakehouse mislykkes, når en af kolonnerne fra Oracle har datatypen Tal . I Oracle kan skalering være større end præcision for decimal-/numeriske typer. Parquet-filer i Lakehouse kræver, at skalaen er mindre end eller lig med præcisionen, så kopieringsaktiviteten mislykkes.
Status: Åben
Produktoplevelse: Data Factory
Symptomer
Når du forsøger at kopiere data fra Oracle til et lakehouse, får du vist en fejl, der ligner: ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127
.
Løsninger og løsninger
Du kan løse problemet ved at bruge en forespørgsel til eksplicit at konvertere kolonnen til NUMBER(p,s)
eller andre typer som .BINARY_DOUBLE
Når du bruger NUMBER(p,s)
, skal du sikre p >= s
og s >= 0
. I mellemtiden bør det område, der er defineret af NUMBER(p,s)
, dække intervallet for de værdier, der er gemt i kolonnen. Hvis ikke, får du vist en fejl, der ligner ORA-01438: value larger than specified precision allowed for this column
. Her er et eksempel på en forespørgsel: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA