共用方式為


已知問題 - 將複製作業從 Oracle 到 Lakehouse 時,數字資料類型失敗

當 Oracle 的其中一個數據行具有 Number 數據類型時,從 Oracle 複製到 Lakehouse 的複製活動會失敗。 在 Oracle 中,小數型別的尺度可以大於小數型別/數值型別的精度。 Lakehouse 中的 Parquet 檔案要求小數位的位數小於或等於精度,因此複製活動會失敗。

狀態: 開啟

產品體驗: Data Factory

癥狀

嘗試將資料從 Oracle 複製到 Lakehouse 時,您會收到類似下列的錯誤:ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127

解決方案和因應措施

您可以使用查詢來明確將數據行轉換成 NUMBER(p,s) 或其他類型,例如 BINARY_DOUBLE來解決此問題。 使用 NUMBER(p,s)時,請確定 p >= ss >= 0。 同時,NUMBER(p,s) 所定義的範圍應該涵蓋儲存在數據行中的值範圍。 如果沒有,您會收到類似 ORA-01438: value larger than specified precision allowed for this column的錯誤。 以下是範例查詢:SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA

後續步驟