次の方法で共有


既知の問題 - Number データ型で Oracle からレイクハウスへの Copy アクティビティが失敗する

Oracle からレイクハウスへの Copy アクティビティは、Oracle の列の 1 つに Number データ型がある場合に失敗します。 Oracle では、小数点以下桁数は 10 進/数値型の有効桁数を超えることができます。 Lakehouse の Parquet ファイルでは、スケールが有効桁数以下である必要があるため、Copy アクティビティは失敗します。

状態: オープン

製品エクスペリエンス: Data Factory

現象

Oracle からレイクハウスにデータをコピーしようとすると、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

次のステップ