Känt problem – aktiviteten Kopiera från Oracle till Lakehouse misslyckas för datatypen Number
Kopieringsaktiviteten från Oracle till ett sjöhus misslyckas när en av kolumnerna från Oracle har datatypen Number . I Oracle kan skala vara större än precisionen för decimal-/numeriska typer. Parquet-filer i Lakehouse kräver att skalan är mindre än eller lika med precision, så kopieringsaktiviteten misslyckas.
Status: Öppna
Produktupplevelse: Data Factory
Symtom
När du försöker kopiera data från Oracle till ett lakehouse får du ett fel som liknar: ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127
.
Lösningar och lösningar
Du kan kringgå det här problemet genom att använda en fråga för att uttryckligen omvandla kolumnen till NUMBER(p,s)
eller andra typer som BINARY_DOUBLE
. När du använder NUMBER(p,s)
, se till p >= s
och s >= 0
. Under tiden bör intervallet som definieras av NUMBER(p,s)
täcka intervallet för de värden som lagras i kolumnen. Om inte får du ett fel som liknar ORA-01438: value larger than specified precision allowed for this column
. Här är en exempelfråga: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA