次の方法で共有


既知の問題 - 数値データ型の Oracle から lakehouse へのコピー アクティビティが失敗する

Oracle から lakehouse へのコピー アクティビティは、Oracle の列の 1 つに Number データ型がある場合に失敗します。 Oracle では、10進/数値型において、スケールが精度を超えることがあります。 Lakehouse の Parquet ファイルでは、スケールが精度以下である必要があり、コピー アクティビティが失敗します。

ステータス: オープン

製品エクスペリエンス: データファクトリー

症状

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

次の手順