Partilhar via


Problema conhecido - A atividade de cópia do Oracle para o lakehouse falha para o tipo de dados Number

A actividade de cópia do Oracle para um lakehouse falha quando uma das colunas do Oracle tem o tipo de dados Número . No Oracle, a escala pode ser maior do que a precisão para tipos decimais/numéricos. Os arquivos Parquet no Lakehouse requerem que a escala seja menor ou igual à precisão, o que faz com que a atividade de cópia falhe.

Estado: Aberto

Experiência de Produto: Data Factory

Sintomas

Ao tentar copiar dados do Oracle para um lakehouse, você recebe um erro semelhante a: ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127.

Soluções e soluções alternativas

Você pode contornar esse problema usando uma consulta para converter explicitamente a coluna para NUMBER(p,s) ou outros tipos, como BINARY_DOUBLE. Ao usar NUMBER(p,s), certifique-se de p >= s e s >= 0. Enquanto isso, o intervalo definido por NUMBER(p,s) deve cobrir o intervalo dos valores armazenados na coluna. Se não, você recebe um erro semelhante ao ORA-01438: value larger than specified precision allowed for this column. Aqui está uma consulta de exemplo: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA

Próximos passos