Del via


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

Næste trin