Dela via


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

Nästa steg