MYTABLE을 생성 한 Oracle 테이블의 경우 COL1 열이 NUMBER (20,3)로 선언됩니다. 소수점 다음에 3 자리 유효 숫자를 가질 수 있습니다. 이 테이블에서 cx_Oracle 커서를 실행할 때 :cx_Oracle 커서 집계에서 열 스케일을 잊어 버림
cursor.execute('SELECT COL1 FROM MYTABLE')
cursor.description
>> [('COL1', <type 'cx_Oracle.NUMBER'>, 25, 22, 20, 3, 1)]
cursor.execute('SELECT SUM(COL1) FROM MYTABLE')
cursor.description
>> [('SUM(COL1)', <type 'cx_Oracle.NUMBER'>, 127, 22, 0, 0, 1)]
두 번째 경우에는 정밀도와 배율을 잃어 버렸습니다. 데이터 자체는 괜찮습니다 (그리고 소수점 이하의 값을 보여줍니다).
예상되는 데이터 유형을 알기 위해 신뢰할 수있는 방법이 필요합니다. 그래서 클라이언트 UI에서 데이터의 형식을 지정하는 방법을 결정할 수 있습니다. 커서 설명을 살펴보면 유효 숫자가 없음 두 번째 경우에는 소수점이 허용되고, UI 로직 다운 스트림은 숫자를 정수로 렌더링하므로 바람직하지 않습니다.
버그입니까? 그렇다면 두 번째 경우에는 커서에서 예상 할 수있는 데이터를 명확하게 파악할 수있는 방법이 있습니까?