본문 바로가기

데이터베이스/ORACLE

8. 기타 자료형 ( RAW, BFILE, BLOB )

1. 기타 자료형

1) RAW

  • 상대적으로 작은 양의 2진 자료 저장
  • 2000BYTE까지 자료저장
  • 이미지 등의 자료를 정해 사용된다.
  • 인덱스 처리 가능 ⇒ 사용 거의 안 함 사진 용량이 커서 부족하다.

( 사용 형식 )

컬럼명 RAW(크기)

2) LONG RAW

  • 이진 자료 저장
  • 2GB까지 저장 가능 / 인덱스 처리 불가능 ⇒ 사용 거의 안 함
  • 기존의 자료형과 호환성을 위해 존치되고 있는 자료형

( 사용 형식 )

컬럼명 LONG RAW;

3) BFILE

  • 이진 자료를 저장하고 처리
  • 이진 자료(원본자료)를 데이터베이스 외부에 저장 ⇒ 외부에 저장된 디렉터리 반드시 지정
  • 디렉터리 별칭은 30BYTE, 파일명은 256BYTE를 초과할 수 없음

( 사용 형식 )

컬럼명 BFILE;

예제)

1. 디렉터리 생성

CREATE DIRECTORY 별칭 AS '절대경로명';
CREATE DIRECTORY TEST_DIR AS 'D:\A_TeachingMaterial\2.Oracle\20200608';

2. 테이블 생성

CREATE TABLE TEMP09(
  COL1 BFILE);

3. 그림파일 경로 저장(INSERT문 사용)

INSERT INTO TEMP09 VALUES(BFILENAME('TEST_DIR','pixabay.JPG')); 

SELECT * FROM TEMP09;

4) BLOB

  • 이진 자료를 저장하고 처리함
  • 이진 자료(원본자료)를 데이터베이스 내부에 저장 ⇒ 사진자료들이 자주 변경되는 경우는 BFILE이 더 좋다
  • 최대 4GB 자료 처리 가능

( 사용 형식 )

컬럼명 BLOB;

예제)

1. 테이블 생성

CREATE TABLE TEMP10(
  COL1 BLOB);

2. 테이블에 그림파일을 삽입하는 익명 블록 작성

DECLARE
  L_DIR VARCHAR2(50) := 'TEST_DIR';
  L_FILE VARCHAR2(20) := 'pixabay.JPG';
  L_BFILE BFILE;
  L_BLOB BLOB;
BEGIN
  INSERT INTO TEMP10 VALUES(EMPTY_BLOB())
    RETURN COL1 INTO L_BLOB;

  L_BFILE := BFILENAME(L_DIR,L_FILE);
  DBMS_LOB.FILEOPEN(L_BFILE,DBMS_LOB.FILE_READONLY);
  DBMS_LOB.LOADFROMFILE(L_BLOB,L_BFILE,DBMS_LOB.GETLENGTH(L_BFILE));
  DBMS_LOB.FILECLOSE(L_BFILE);
   
  COMMIT;
END;

(확인)
SELECT * FROM TEMP10;  --디스플레이 하는것은 오라클에서는 할수없다.

 

1.raw.sql
0.00MB

'데이터베이스 > ORACLE' 카테고리의 다른 글

10. 연산자 ( OPERATION )  (0) 2021.03.16
9. SELECT  (0) 2021.03.15
7. 날짜형 ( DATE )  (0) 2021.03.15
6. 숫자형 ( NUMBER )  (0) 2021.03.15
5. 문자열 ( VARCHAR, CLOB )  (0) 2021.03.15