데이터타입 | 설명 |
---|---|
CHAR | 최대 길이 만큼 스페이스로 공백을 채우는 고정길이 문자 타입. CHAR 타입은 2000바이트 까지 저장 가능 |
NCHAR | 유니코드 형식의 데이터를 포함하는 고정 길이 문자 타입 CHAR타입과 NCHAR 타입은 각각 데이터 베이스의 캐릭터 셋과 내셔널 캐릭터 셋을 사용. CHAR 타입은 2000바이 까지 저장 가능 |
VARCHAR2 | 일반적으로 VARCHAR와 같다 가변 길이 문자 타입으로 최대 자리까지 공백을 채우지 않는다는 점은 CHAR와 다르다. VARCHAR2는 최대 4000바이트까지 저장 가능 |
NVARCHAR2 | 유니코드 형식의 데이터를 가지는 가변 길이 문자 타입 NVARCHAR2는 최대 4000바이트까지 저장 가능 |
RAW | 가변 길이 이진 데이터 타입 저장된 데이터는 캐릭터 셋 변환이 일어나지 않는다 최대 2000바이트 저장 가능 |
NUMBER | 38자리 정밀도를 가진 숫자를 저장 오라클 NUMBER 타입은 많은 프로그래밍 언어에서 사용되는 FLOAT, DOUBLE 타입보다 정밀도가 좋다 |
BINARY_FLOAT | 10g 릴리즈1이상에서 사용가능 32비트 단정 부동소수점 숫자 최소 6자리 정밀도를 가짐 디스크 저장시 5바이트를 차지 |
BINARY_DOUBLE | 10g 릴리즈1이상에서 사용가능 64비트 배정도 부동소수점 숫자 최소 15자리 정밀도를 가짐 디스크 저장시 9바이트를 차지 |
LONG | 문자 데이터 최대 2GB까지 저장가능(멀티바이트 캐릭터셋일때 각 문자를 멀티바이트로 표현했을 때 의 길이) LONG타입은 많은 제약사항을 가지고 있다 기존 애플리케이션에서 사용한 LONG은 CLOB타입으로 변경을 추천 |
LONG RAW | 이진 정보를 2GB까지 저장가능 LONG타입과 마찬가지로 기존 애플리케이션도 BLOB 타입으로 변경추천 |
DATE | 고정길이 7바이트 DATA/TIME 데이터 타입 일골가지 속성정보, 세기, 연도, 월, 일, 시간, 분, 초 를 가짐 |
TIMESTAMP | 고정길이 7 또는 11바이트 DATA/TIME타입 초 단위 이하의 데이터를 가진다는것과 DATE와 다름 초 단위를 소수점 9자리까지 표현가능 |
TIMESTAMP WITH TIME ZONE | 고정길이 13바이트 TIMESTAMP 타입 표준 시간대 정보를 저장함, 표준시간대에 추가적인 정보가 TIMESTAMP에 같이 저장 처음 저장된 표준시간대 정보는 데이터와 함께 보존 |
TIMESTAMP WITH LOCAL TIME ZONE | TIMESTAMP와 같이 고정 7 또는 11바이트 DATA/TIME 데이터타입으로, 표준시간대의 영향을 받음 서버가 위치한 곳을 기준으로 표시 |
INTERVAL YEAR TO MONTH | 고정길이 5바이트 데이터 타입 연과 월에 대한 기간을 저장 DATE타입이나 TIMESTAMP 타입의 특정 시점에서 일자를 더하거나 빼어 기간을 산출가능 |
INTERVAL DAY TO SECOND | 고정길이 11바이트 데이터 타입 일,시,분,초 기간을 저장 선택적으로 소수점 9자리 초 단위까지도 저장가능 |
BFILE | 오라클 디렉토리 객체와 데이터베이스 컬럼에 파일명을 저장하고 파일을 읽을 수 있슴 파일이 데이터베이스 파일 자체에 저장되는 것처럼 읽기 전용 방식으로 데이터베이스 서버에 os 파일에 접곤하는데 효과적 |
BLOB | 9i 이하는 4GB , 10g 이상은 4GB*10(Database blocksize)바이트 까지 가능 BLOB 캐릭터 셋 변환이 적용되지 않는 이진 정보를 가짐 스프레드시트, 이미지, 워드 파일등 저장에 적합 |
CLOB | 9i 이하는 4GB , 10g 이상은 4GB*10(Database blocksize)바이트 까지 가능 CLOB는 캐릭터 셋 변환이 적용되는 정보를 가짐 큰 평문정보를 저장하기 적합 큰 평문 정보가 아닌 4000바이트 이하 평문은 VARCHAR2에 저장하는게 좋음 |
NCLOB | 9i 이하는 4GB , 10g 이상은 4GB*10(Database blocksize)바이트 까지 가능 NCLOB는 데이터베이스의 내셔널 캐릭터 셋에서 인코딩된 정보를 저장하고 , CLOB처럼 캐릭터 셋 변환이 적용되는 정보를 포함 |
ROWID | 데이터베이스에서 로우에 대한 10바이트 주소를 관리하는데 효과적 ROWID로 가리키는 테이블 등의 객체를 찾을 수 있을 뿐만 아니라 디스상의 로우 위치를 정보를 포함 |
UROWID | 범용 ROWID 이기종 DB에 게이트웨이를 통한 액세스된 IOT와 일반 테이블과 같은 테이블에 사용 URROWID는 로우의 기본키값으로 표현 URROWID가 가리키는 객체에 따라 크기가 달라짐 |
-- 스크립트
CREATE TABLE DATATYPE
( A CHAR,
B NCHAR,
C VARCHAR2(10),
D NVARCHAR2(10),
E RAW(10),
F NUMBER,
G BINARY_FLOAT,
H BINARY_DOUBLE,
--I LONG,
J LONG RAW,
K DATE,
N TIMESTAMP,
M TIMESTAMP WITH TIME ZONE,
L TIMESTAMP WITH LOCAL TIME ZONE,
O INTERVAL YEAR TO MONTH,
P INTERVAL DAY TO SECOND,
Q BFILE,
R BLOB,
S CLOB,
T NCLOB,
U ROWID ,
V UROWID
)
SQL> set linesize 50
SQL> desc datatype
이름 널? 유형
----------------------- -------- ----------------
A CHAR(1)
B NCHAR(1)
C VARCHAR2(10)
D NVARCHAR2(10)
E RAW(10)
F NUMBER
G BINARY_FLOAT
H BINARY_DOUBLE
I LONG -- LONG 타입은 한 테이블에 두개가 들어갈 수 없습니다. 가상으로 입력
J LONG RAW
K DATE
N TIMESTAMP(6)
M TIMESTAMP(6) WITH TIME ZONE
L TIMESTAMP(6) WITH LOCAL TIME ZONE
O INTERVAL YEAR(2) TO MONTH
P INTERVAL DAY(2) TO SECOND(6)
Q BINARY FILE LOB
R BLOB
S CLOB
T NCLOB
U ROWID
V ROWID
21 개의 행이 선택되었습니다.
SQL> SET LINESIZE 50
SQL> SELECT DATA_TYPE,DATA_LENGTH,CHAR_LENGTH,CHAR_USED
2 FROM USER_TAB_COLUMNS
3 WHERE TABLE_NAME ='DATATYPE';
DATA_TYPE DATA_LENGTH CHAR_LENGTH CHAR_USED
--------------------------------------------------------------------------------------------
CHAR 1 1 B
NCHAR 2 1 C
VARCHAR2 10 10 B
NVARCHAR2 20 10 C
RAW 10 0
NUMBER 22 0
BINARY_FLOAT 4 0
BINARY_DOUBLE 8 0
LONG RAW 0 0
DATE 7 0
TIMESTAMP(6) 11 0
TIMESTAMP(6) WITH TIME ZONE 13 0
TIMESTAMP(6) WITH LOCAL TIME ZONE 11 0
INTERVAL YEAR(2) TO MONTH 5 0
INTERVAL DAY(2) TO SECOND(6) 11 0
BFILE 530 0
BLOB 4000 0
CLOB 4000 0
NCLOB 4000 0
ROWID 10 0
UROWID 4000 0