오라클 NUMBER(p) 스토리지 크기?
검색해봤는데 제 질문에 대한 결정적인 답을 찾을 수가 없네요...
오라클에서 숫자(p) 필드의 저장소 크기를 알아야 합니다.
예: NUMBER(1), NUMBER(3), NUMBER(8), NUMBER(10) 등...
사용되는 저장소는 실제 숫자 값뿐만 아니라 열의 정밀도 및 척도에 따라 달라집니다.
Oracle 11gR2 개념 가이드는 다음과 같이 설명합니다.
Oracle Database는 숫자 데이터를 가변 길이 형식으로 저장합니다.각 값은 과학적 표기법으로 저장되며 지수를 저장하는 데 1바이트가 사용됩니다.데이터베이스는 최대 20바이트를 사용하여 중요한 숫자를 포함하는 부동 소수점 번호의 일부인 가수를 저장합니다.Oracle Database에는 선행 및 후행 0이 저장되지 않습니다.
10gR2 가이드는 다음과 같습니다.
이를 고려하여 특정 숫자 데이터 값 NUMBER(p)에 대한 열 크기(p는 지정된 값의 정밀도)를 다음 공식을 사용하여 계산할 수 있습니다.
ROUND((length(p)+s)/2))+1
여기서 s는 숫자가 양수이면 0이고, s는 숫자가 음수이면 1입니다.
0, 양 및 음의 무한대(Version 5 Oracle 데이터베이스에서 가져올 때만 생성됨)는 고유한 표현을 사용하여 저장됩니다.0 및 음의 무한대에는 각각 1바이트가 필요하고 양의 무한대에는 2바이트가 필요합니다.
My Oracle Support에 액세스할 수 있는 경우 Note 1031902.6에 더 많은 정보가 있습니다.
또는 와 함께 사용된 실제 저장소를 볼 수 있습니다.
create table t42 (n number(10));
insert into t42 values (0);
insert into t42 values (1);
insert into t42 values (-1);
insert into t42 values (100);
insert into t42 values (999);
insert into t42 values (65535);
insert into t42 values (1234567890);
select n, vsize(n), dump(n)
from t42
order by n;
N VSIZE(N) DUMP(N)
------------ ---------- ---------------------------------
-1 3 Typ=2 Len=3: 62,100,102
0 1 Typ=2 Len=1: 128
1 2 Typ=2 Len=2: 193,2
100 2 Typ=2 Len=2: 194,2
999 3 Typ=2 Len=3: 194,10,100
65535 4 Typ=2 Len=4: 195,7,56,36
1234567890 6 Typ=2 Len=6: 197,13,35,57,79,91
스토리지는 값에 따라 다릅니다. 모든 스토리지가 단일 스토리지에 포함되어 있더라도number(10)
두 개의 세 자리 숫자가 서로 다른 양의 저장 공간을 필요로 할 수 있습니다.
NUMBER
999...(38 9's) x10125
maximum value Can be represented to full 38-digit precision (the mantissa).
-999...(38 9's) x10125
minimum value Can be represented to full 38-digit precision (the mantissa).
Precision 38 significant digits ==> NUMBER(38) is the max
그number
Oracle의 데이터 유형은 다음과 같은 가변 길이의 특수 데이터 유형입니다.varchar
동일한 데이터를 저장하는 경우number(5)
그리고.number(20)
스토리지는 다음과 같이 열을 선언하는 것과 같습니다.varchar(100)
그리고.varchar(200)
.
그래서 p 매개변수를 지정하기number(p,s)
스토리지 크기에는 영향을 미치지 않으며 데이터에 대한 제약 조건만 적용합니다.그러나 s 모수를 지정하면 데이터를 반올림하여 크기를 줄일 수 있습니다.
숫자 데이터 유형의 최소 저장소 크기는 1바이트이고 최대 저장소 크기는 21바이트입니다.따라서 제약 조건을 적용하지 않으려면 다음을 사용합니다.number
매개 변수가 없는 입니다. p 매개 변수가 없습니다.
언급URL : https://stackoverflow.com/questions/24240087/oracle-numberp-storage-size
'programing' 카테고리의 다른 글
두 개의 분기에서 동시에 작업하는 git (0) | 2023.07.01 |
---|---|
ggplot에서 범례 제목 제거 (0) | 2023.07.01 |
zshon mac에서 Git 탭 완료가 작동하지 않습니다. (0) | 2023.07.01 |
결과를 나누기 위한 SQL의 십진수 값 (0) | 2023.07.01 |
NumPy 2d 배열의 슬라이싱 또는 nxn 배열(n>m)에서 mxm 하위 매트릭스를 추출하는 방법은 무엇입니까? (0) | 2023.07.01 |