已知問題 - 從 Oracle 到 Lakehouse 的複製活動會因 Number 資料類型而失敗
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 >= s
和 s >= 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