알려진 문제 - 숫자 데이터 형식에 대해 Oracle에서 lakehouse로 복사 작업이 실패함
Oracle의 열 중 하나에 Number 데이터 형식이 있는 경우 Oracle에서 레이크하우스로의 복사 작업이 실패합니다. Oracle에서 스케일은 소수/숫자 형식의 정밀도보다 클 수 있습니다. Lakehouse의 Parquet 파일은 스케일이 정밀도보다 작거나 같아야 하므로 복사 작업이 실패합니다.
상태: 열림
제품 경험: 데이터 팩토리
증상
Oracle에서 레이크하우스로 데이터를 복사하려고 하면 다음과 같은 오류가 발생합니다. ParquetInvalidDecimalPrecisionScale. Invalid Decimal Precision or Scale. Precision: 38 Scale:127
.
솔루션 및 해결 방법
쿼리를 사용하여 열을 NUMBER(p,s)
또는 BINARY_DOUBLE
같은 다른 형식으로 명시적으로 캐스팅하여 이 문제를 해결할 수 있습니다.
NUMBER(p,s)
을 사용할 때 p >= s
을 확인하고 s >= 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