Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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_DOUBLE
zu 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 column
angezeigt. Hier ist eine Beispielabfrage: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA