Freigeben über


Bekanntes Problem: Fehler bei der Copy-Aktivität von Oracle in ein Lakehouse für den Datentyp Zahl

Bei der Copy-Aktivität von Oracle in ein Lakehouse tritt ein Fehler auf, 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. Aus diesem Grund tritt bei der Copy-Aktivität ein Fehler auf.

Status: Offen

Produkterfahrung: Datenfabrik

Symptome

Wenn Sie versuchen, Daten von Oracle in ein Seehaus 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_DOUBLEzu umwandeln. 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. Wenn nicht, wird eine Fehlermeldung wie ORA-01438: value larger than specified precision allowed for this columnangezeigt. Hier ist eine Beispielabfrage: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA

Nächste Schritte