DB

[DB][Oracle] RAW 타입

오선지♬ 2025. 8. 6. 13:13
728x90
반응형

Oracle에서 RAW 타입은 **"가공하지 않은(binary) 데이터"**를 저장하는 자료형입니다.
쉽게 말하면 문자가 아니라 순수한 바이트(byte) 값을 저장하는 거예요.


📌 RAW 타입 특징

  • 문자열이 아님 → 인코딩 안 된 바이트 시퀀스 저장
  • 보통 길이는 최대 2000 바이트 (RAW(n) 에서 n ≤ 2000)
  • VARCHAR2 와 달리 문자셋/인코딩 변환 없음
  • 출력하면 보통 16진수(hex) 형태로 보입니다

📌 사용 예시

  1. 바이너리 데이터 저장
     
    CREATE TABLE raw_test (
        id NUMBER,
        data RAW(16)  -- 16바이트 저장 가능
    );
  2. INSERT
    INSERT INTO raw_test VALUES (1, HEXTORAW('7F45C210'));
  3. SELECT
     
SELECT data FROM raw_test; -- 결과: 7F45C210 (hex 값으로 출력)

📌 RAW와 CLOB/BLOB 관계

  • CLOB → 문자 기반 대용량 데이터 (Character Large Object)
  • BLOB → 바이너리 대용량 데이터 (Binary Large Object)
  • DBMS_LOB.SUBSTR 를 BLOB에 쓰면 RAW 타입으로 반환합니다.
    • 예: 이미지, 압축 데이터, 암호화 데이터 같은 거 잘라낼 때

📌 정리

  • RAW = 가공되지 않은 바이너리 데이터 타입
  • 문자열(VARCHAR2)이 아니라 byte 단위로 저장됨
  • 보통 암호화 키, 해시값, 바이너리 ID, 이미지 조각 등에 사용
728x90
반응형