Oracle에서는 다양한 숫자 타입을 제공하며, 주로 정수, 고정 소수점, 부동 소수점 숫자를 표현하는 데 사용됩니다. 아래 표는 주요 숫자 타입의 종류와 특징을 정리한 것입니다.
| 데이터 타입 | 특징 및 설명 |
|---|---|
NUMBER(p,s) |
가변 길이 숫자 타입. p는 전체 자릿수(1s는 소수점 이하 자릿수(-84 |
BINARY_FLOAT |
32비트 단정밀도 부동 소수점 타입, 빠른 연산을 위해 사용됨. |
BINARY_DOUBLE |
64비트 배정밀도 부동 소수점 타입, 높은 정밀도를 요구할 때 사용됨. |
NUMBER(p,s)NUMBER 타입은 Oracle에서 가장 일반적으로 사용되는 숫자 타입입니다.
p (Precision): 전체 자릿수(1~38 사이)s (Scale): 소수점 이하 자릿수 (-84~127 사이)p와 s를 생략하면 NUMBER는 최대 38자리의 숫자를 저장할 수 있습니다.NUMBER(p,0) 형태로 사용합니다.
CREATE TABLE number_test (
num1 NUMBER, -- 최대 38자리까지 저장 가능
num2 NUMBER(10,2), -- 최대 10자리, 소수점 이하 2자리
num3 NUMBER(5,0) -- 정수값만 저장 (5자리)
);
INSERT INTO number_test (num1, num2, num3) VALUES (12345678901234567890, 12345.67, 12345);
SELECT * FROM number_test;
BINARY_FLOATNUMBER보다 연산 속도가 빠르지만, 정밀도는 떨어질 수 있습니다.NaN(Not a Number) 및 Infinity 값을 지원합니다.
CREATE TABLE binary_float_test (
val BINARY_FLOAT
);
INSERT INTO binary_float_test VALUES (1.23);
INSERT INTO binary_float_test VALUES ('NaN'); -- Not a Number 저장 가능
SELECT * FROM binary_float_test;