[Oracle/오라클] 데이터 타입 - 숫자자료형
숫자자료형
- NUMBER로 제공
- 실수, 정수 모두 처리 가능
NUMBER [ ( 정밀도 | * [ , 스케일 ] ) ]
- 표현 범위 : 10e-130 ~ 9.9999...9e125
- 정밀도 : 전체 자리 수 (1~38)
- 스케일 : 소숫점 이하의 자리 수
- '*' 는 38자리 이내에서 사용자가 입력한 데이터를 저장할 수 있도록 시스템이 자리를 확보
- '스케일'이 생략되면 '0'으로 간주
- 저장은 스케일+1번째 자리에서 반올림하여 '스케일'자리 수까지 저장
- '스케일'이 음수이면 정수 부분에서 반올림이 수행됨.
ex)
1) 정밀도 > 스케일
- NUMBER ; -- 사용자가 입력한 자료 그대로를 저장
- NUMBER ( *, 3 ) ;
- NUMBER ( 10,3 ) ;
- NUMBER ( 10 ) ;
---------------------------------------------------------------------------
입력 값 선언 저장값
---------------------------------------------------------------------------
12345678.4567 NUMBER (10,2) 12345678.46 -- 전체 10자리. 소숫점 3번째 자리까지
12345678.4567 NUMBER 12345678.4567
12345678.8567 NUMBER (10[,0]) 123456789 -- 주로 사용
12345678.4567 NUMBER (*,2) 12345678.46
12345678.4567 NUMBER (9,2) 오류
---------------------------------------------------------------------------
2) 정밀도 < 스케일
- 정밀도 : 소숫점 이하에서 '0'이 아닌 유효숫자의 갯수
- [스케일 - 정밀도] : 소숫점 이하에서 맨 처음에 존재하는 '0'의 갯수
- 스케일 : 소숫점 이하의 자리 수
---------------------------------------------------------------------------
입력 값 선언 저장값
---------------------------------------------------------------------------
123.4567 NUMBER (2,4) 오류
0.23 NUMBER (3,5) 오류
0.023 NUMBER (2,3) 0.023
0.0023 NUMBER (2,4) 0.0023
0.0002345 NUMBER (3,6) 0.000235 : 소숫점 3번째 자리까지 표현
---------------------------------------------------------------------------