기본 콘텐츠로 건너뛰기

라벨이 ODP.NET인 게시물 표시

[ 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

[Oracle] Oracle Client 설치 없이 접속하기

이번 프로젝트는 여러 가지로 상당한 제약이 존재한다. 그 중에서 가장 큰 문제가 시스템에 뭘 설치하려면 요청 > 승인 > 설치 과정을 거쳐야 하고, 국외의 담당자와 연계되기 때문에 시간이 많이 걸린다는 것이다. Oracle Client도 역시 미 설치 상태가 요청되기 때문에 여러 가지 자료들을 조사해서 정리를 해 놓도록 한다. 우선 필요한 라이브러리와 어셈블리들은 다음과 같다. (다른 PC에 설치를 하고 어셈블리들을 가져와야 한다) oci.dll Oracle.DataAccess.dll oraociicus11.dll OraOps11w.dll orannzsbb11.dll oraocci11.dll ociw32.dll 물론 기본 설치 파일은 여기 로 가서 환경에 맞는 버전을 다운로드 해야 한다. ODAC 32bit ODAC 64bit 실제 사용은 Client가 설치되지 않았으므로 TNSNames를 이용하는 것이 아니라 Raw한 ConnectionString을 이용하는 것이다. "user id=사용자ID;password=사용자비밀번호;data source=TNSNames에 지정한 것과 동일한 포맷의 연결정보;" 기타 더 필요한 부분은 다음을 검토해 보도록 한다. http://www.oracle.com/technetwork/database/windows/downloads/index.html http://www.splinter.com.au/connecting-to-oracle-from-c-winforms-aspnet-w/ http://www.splinter.com.au/using-the-new-odpnet-to-access-oracle-from-c/ http://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&detail=1&wid=822 http://stackoverflow.com/questions/11366695/how-do