참고
2020-07-24-02.sql
2020-07-29-01)기타자료형.sql
기타 자료형
- 이진자료 저장을 위한 자료 타입
- BLOB, RAW, LONG RAW, BFILE
1) RAW
- 상대적으로 작은 양의 이진 자료를 저장 (바이너리 데이터)
- 인덱스 처리가 가능
- 데이터베이스에서는 해석이나 변환 작업은 수행하지 않음
ex) 사진 자료를 이진으로 저장하지만 그걸 사진으로 변환하는건 java
- 최대 2000 byte 까지 저장 가능
- 주로 음성, 영상, 이미지 (하지만 2000byte에 저장하기에는 너무 작다)
- 16진수와 2진수만 저장 가능
컬럼명 RAW(크기)
예시
1행) HEXTORAW함수를 활용, 2진수로 변환해 저장
- HEXA 16진수 : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
2행) 16진수를 그대로 저장 (저장은 2진수로 됨)
- HEXTORAW('6ADC')랑 결국 저장되는 내용은 같음
3행) 16진수를 2진수로 변환해 저장
- 보이는 것은 다르지만 결국 DB에 저장되는 건 이렇게 2진수로 저장됨
결과
2) BFILE
- 이진 데이터 저장
- 대상이 되는 이진 데이터: 데이터베이스 외부에 따로 저장
- 경로 정보(DIRECTORY 객체): 데이터베이스 내부에 저장
- 4GB 까지 처리가능- 썸네일 보여주고 썸네일 눌렀을때 불러오는거?
사용형식
컬럼명 BFILE;
- 디렉토리 별칭(Alias)은 30BYTE, 파일명은 256 BYTE
-> 1. 사용되는 운영체제에 따라 몇바이트까지 허용하는지 달라짐
-> ex) 유닉스는 윈도우보다 더 긴 디렉토리 별칭 지원
-> 2. 윈도우: 디렉토리의 절대경로(C:\Users\PC-02)를 간단히 해주기 위해 별칭
예시
1. 원본자료(그림)이 저장된 디렉토리 객체 생성
- 디렉토리 별칭: TEST_DIR
- 디렉토리 절대주소: D:\A_TeachingMaterial\2.Oracle
2. 사진 담을 테이블 생성
3. 데이터 삽입
4. 잘들어갔는지 확인
- 자바,JSP,JQUERY를 통해 여기 담긴 주소를 파일로 출력시킨다.
- 오라클은 주소를 저장하는 역할을 한다.
3) BLOB
- 이진 자료 저장
- 대상이 되는 이진 데이터: 데이터베이스 내부에 저장
- 4GB 까지 처리 가능
사용형식
컬럼명 BLOB;
예시
1. 데이터담을 테이블 생성
- 직접적으로 INSERT 명령문을 쓸 수 없음
- 익명블록으로 저장 쿼리를 작성
- 익명블록은 PLSQL의 기본구조
- 익명블록은 재사용 불가
- 선언부와 실행부로 나눠짐
- 구조
2. 익명블록 구조 작성
3. 잘됐나 확인
- 데이터 길이 위해서 구한거를 진짜 사진으로 보여주려면 자바같은거에서 해야함