Compartir a través de


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

La actividad de copia de Oracle a un almacén de lago 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 del almacén de lago 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 un almacén de lago, recibirás un error similar al siguiente: ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127.

Soluciones y soluciones alternativas

Puede solucionar este problema mediante 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 p >= s y s >= 0. Mientras tanto, el intervalo definido por NUMBER(p,s) debe abarcar el intervalo 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