오라클 아키텍처의 데이터타입
- Coding/Oracle Architecture
- 2019. 6. 23.
데이터베이스 문자 세트와 NATIONAL 문자 세트
문자 데이터 타입에는 데이터베이스 문자 세트를 기반으로 하는 문자 데이터를 저장한다. 즉, 저장하고자하는 문자열을 데이터베이스의 문자 세트에 따른 문자 코드의 바이트 열로 변환한 후에 데이터 파일에 저장한다.
ex) 데이터베이스 문자 세트가 ‘KO16KSCO5601’ 일때 > 문자 ‘가’는 ‘가’의 KS C 5601의 바이트 표현인 ‘0xB0A1’로 저장된다.
저장 데이터가 유니코드(NATIONAL 문자 세트) 일때 사용하는 문자 데이터 타입에는 NATIONAL 문자 세트의 바이트 표현으로 데이터 파일에 저장된다. NATIONAL 문자 세트에는 유니코드와 대응되는 문자 세트(AL16UTF16 또는 UTF-8)만 지정할 수 있다.
ex) NATIONAL 문자세트가 ‘AL16UTF16’일때 문자 ‘가’는 ‘가’의 UTF-16의 바이트 표현인 ‘0xAC00’이 저장된다.
LOB 데이터 타입
LOB 데이터는 문자 데이터 타입보다 큰 크기의 텍스트 문자열이나, 그림, 영상, 문서 등의 데이터를 바이너리 형식으로 저장할때 사용하는 데이터 타입이다.
1) CLOB : 데이터베이스 문자 세트 문자열
2) NCLOB : 유니코드(NATIONAL 문자 세트) 문자열
3) BLOB : 바이너리 데이터
4) BFILE : 데이터베이스 외부의 바이너리 파일을 연결해주는 데이터타입 (2의 32제곱 - 1 바이트)
위 4가지 중에 CLOB, NCLOB, BLOB의 공통된 특징은 아래 2가지이다.
1) 기본값은 ‘4GB에서 1을 뺀 바이트 수에 블록 크기를 곱한 값’이다.
2) 블록 파라미터의 값을 다른값으로 변경하여 8~128TB로 변경할 수 있다.
LOWID 데이터 타입
ROWID를 저장하는 데이터 타입이다. ROWID는 로우의 물리적인 위치를 가리키는 특수한 16진수의 값이다.
테이블 확인
테이블을 확인해보자.
SELECT owner, -- 테이블을 소유하는 계정
table_name, -- 테이블명
tablespace_name, -- 테이블이 저장돼있는 테이블 스페이스
pct_free, -- 블록 내의 빈공간 최소 비율
pct_used -- 블록 내의 사용한 공간 최소 비율 (테이블 스페이스 관리 방식이 'ASSM'일때 'null')
FROM DBA_tABLES;
접속한 계정이 소유하고있는 테이블을 확인해보자.
SELECT table_name, -- 테이블명
tablespace_name, -- 테이블이 저장돼있는 테이블 스페이스
pct_free, -- 블록 내의 빈공간 최소 비율
pct_used -- 블록 내의 사용한 공간 최소 비율 (테이블 스페이스 관리 방식이 'ASSM'일때 'null')
FROM USER_TABLES;
테이블 칼럼 정의 확인
1) 테이블의 정의 확인
DESC <테이블명>
2) 모든 칼럼에 관한 정보 확인
SELECT owner, -- 테이블을 소유하는 계정
table_name, -- 테이블명
column_name, -- 칼럼명
data_type, -- 칼럼의 데이터 타입
data_length, -- 칼럼의 길이 (바이트 단위)
data_precision, -- 칼럼의 정밀도
data_scale, -- 칼럼의 스케일
nullable, -- null 입력 가능 여부
char_length, -- 칼럼의 길이를 문자료 표시 (NOT NULL 제약 또는 PK의 일부일때 : 'N')
char_used -- 칼럼 길이를 지정하는 단위 (바이트일때: 'B' , 문자일때: 'C')
FROM DBA_TAB_COLUMNS
WHERE TABLE_NAME = <테이블명>;
3) 접속한 계정이 소유하는 테이블의 칼럼에 관한 정보 확인
SELECT table_name, -- 테이블명
column_name, -- 칼럼명
data_type, -- 칼럼의 데이터 타입
data_length, -- 칼럼의 길이 (바이트 단위)
data_precision, -- 칼럼의 정밀도
data_scale, -- 칼럼의 스케일
nullable, -- null 입력 가능 여부
char_length, -- 칼럼의 길이를 문자료 표시 (NOT NULL 제약 또는 PK의 일부일때 : 'N')
char_used -- 칼럼 길이를 지정하는 단위 (바이트일때: 'B' , 문자일때: 'C')
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = <테이블명>;
'Coding > Oracle Architecture' 카테고리의 다른 글
[오라클 예제파일] 오라클 테스트 예제 테이블 생성 및 샘플데이터 (0) | 2019.10.23 |
---|---|
오라클의 제약조건 (0) | 2019.06.23 |
오라클의 테이블/로우체이닝/로우 마이그레이션 (0) | 2019.06.23 |
[오라클 아키텍처 > 계정과 권한] 오라클의 기본계정 (0) | 2019.06.23 |
롤 (ROLE) (0) | 2019.06.23 |