기본 콘텐츠로 건너뛰기

라벨이 BLOB인 게시물 표시

[ ORACLE ] BLOB 작업하기

현재 진행 중인 프로젝트에서 IMAGE 나 PDF 등 (Binary Data)을 저장하고 조회하는 기능이 필요해서 오라클 DB에 ODP.NET을 이용해서 작업을 구성하였다. BLOB  작업 LOBs Basic   LOBs 는 데이터베이스에 저장할 수 있는 데이터 스트림으로서의  Large OBject 를 의미한다. 최대 처리할 수 있는 크기는 4G이며 다음과 같은 형식을 제공한다. BLOB - 비정형 바이너리 데이터로 저장되는 형식으로 문자형식(Character set)에 상관없는 비트스트림이다. CLOB - Single byte 와 Multi byte 의 문자형 데이터를 의미하고 고정/가변 길이를 제공하고 데이터베이스의 Character Set 기준을 따라서 저장된다. NCLOB - CLOB 과 같지만 Unicode 데이터로 저장된다.    LONG 이나 LONG RAW 형식을 처리하는 것과 같이 OracleDataReader를 이용해서 LOB 필드에 저정된 값을 읽을 수 있다. LOB 데이터 형식을 사용하는 방식의 다른 점은 DML 이나 PL/SQL 을 이용해서 해당 필드에 접근하는 경우에 명확하게 구분된다. BLOB 이나 CLOB 의 경우는 별도의 테이블스페이스에 저장이 되기 때문에 해당 필드는 데이터가 존재하는 위치의 포인터 정보만 가지고 있게 된다. (LOB Locator) 따라서 LONG 이나 LONG RAW 형식과는 다른 방식으로 관리가 된다. Working with BLOB   아래와 같이 기본 테이블을 구성하도록 한다. CREATE TABLE BLOBSAMPLE (    FILE_ID VARCHAR2(32) NOT NULL,    FILE_NAME VARCHAR2(200) NOT NULL, FILE_EXTENSION VARCHAR2(10) NOT NULL, FILE_CONTENT BLOB NOT NULL, CONSTRAINT