Compartir a través de


Problema conocido: la actividad de copia de Oracle a Lakehouse produce un error en el tipo de datos Number

La actividad de copia de Oracle a una instancia de Lakehouse produce un error cuando una de las columnas de Oracle tiene un tipo de datos Number. En Oracle, la escala puede ser mayor que la precisión de los tipos decimales o numéricos. Los archivos Parquet de Lakehouse requieren que la escala sea inferior o igual a la precisión, por lo que se produce un error en la actividad de copia.

Estado: Abierto

Experiencia del producto: Data Factory

Síntomas

Al intentar copiar datos de Oracle a una instancia de Lakehouse, recibirá un error similar al siguiente: ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127.

Soluciones y soluciones alternativas

Puede solucionar este problema usando una consulta para convertir explícitamente la columna en NUMBER(p,s) u otros tipos como BINARY_DOUBLE. Al usar NUMBER(p,s), asegúrese de que p >= s y s >= 0. Mientras tanto, el rango definido por NUMBER(p,s) debería cubrir el rango de los valores almacenados en la columna. Si no es así, recibirá un error similar a ORA-01438: value larger than specified precision allowed for this column. Esta es una consulta de ejemplo: SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA

Pasos siguientes