Freigeben über


Bekanntes Problem – Copy-Aktivität von Oracle nach Lakehouse schlägt für den Datentyp Zahl fehl

Die Copy-Aktivität von Oracle in ein Lakehouse schlägt fehl, wenn einer der Spalten von Oracle einen Datentyp Zahl aufweist. In Oracle kann die Skalierung größer als die Genauigkeit für Dezimal-/numerische Typen sein. Parquet-Dateien in Lakehouse erfordern, dass der Maßstab kleiner oder gleich der Genauigkeit ist, sodass die Copy-Aktivität fehlschlägt.

Status: Offen

Produktbereich: Data Factory

Problembeschreibung

Wenn Sie versuchen, Daten aus Oracle in ein Lakehouse zu kopieren, erhalten Sie eine Fehlermeldung wie: ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127.

Lösungen und Problemumgehungen

Sie können dieses Problem umgehen, indem Sie eine Abfrage verwenden, um die Spalte explizit in NUMBER(p,s) oder andere Typen wie BINARY_DOUBLE umzuwandeln. Stellen Sie bei Verwendung von NUMBER(p,s) sicher, dass p >= s und s >= 0 angegeben sind. In der Zwischenzeit sollte der durch NUMBER(p,s) definierte Bereich den Bereich der in der Spalte gespeicherten Werte abdecken. Andernfalls wird ein ähnlicher Fehler wie ORA-01438: value larger than specified precision allowed for this column angezeigt. Dies ist eine Beispielabfrage: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA

Nächste Schritte