반응형
기타자료형
- 2진자료를 저장하기 위한 자료형
- RAW, LONG RAW, BLOB, BFILE
1) RAW
- 상대적으로 작은 2진자료 저장
- 인덱스 처리가능
- 최대 2000 BYTE 처리 가능
- 오라클에서 래석이나 변환작업이 수행되지 않음
- 16진수와 2진수로 저장
(사용 형식)
컬럼명 RAW(크기);
2) BFILE
- 2진 자료 저장
- 대상이되는 2진 자료는 데이터베이스 외부에 저장
- 경로정보(DIRECTORY 객체)와 파일명만 데이블에 저장
- 4GB 까지 저장 가능
(사용 형식)
컬럼명 BFILE;
그림파일 저장순서
(1) 그림파일이 저장된 경로와 파일확인
(2) 디렉토리객체 생성(CREATE OR REPLACE DIRECTORY 디렉토리명 AS 절대주소)
(3) 테이블생성
(4) 그림파일 삽입
(사용예)
(1) 그림경로 : 'D:\A_TeachingMaterial\2.Oracle\workspace\20210215' 본인 그림경로
파일 명 : 'SAMPLE01.JFIF'
(2) 디렉토리 객체 생성 :
CREATE OR REPLACE DIRECTORY TEST_DIR AS 'D:\A_TeachingMaterial\2.Oracle\workspace\20210215';
(3) 테이블 생성 :
CREATE TABLE TEMP07(COL1 BFILE);
(4) 그림 삽입 :
INSERT INTO TEMP07
VALUES(BFILENAME('TEST_DIR','SAMPLE01.JFIF'));
SELECT * FROM TEMP07;
3) BLOB
- 2진자료를 데이터베이스 내부에 저장
- 4GB까지 저장 가능
- 해석 및 변환되지 않음
(사용형식)
컬럼명 BLOB;
(사용예)
그림파일 저장순서
(1) 그림파일이 저장된 경로와 파일확인
(2) 디렉토리객체 생성(CREATE OR REPLACE DIRECTORY 디렉토리명 AS 절대주소)
(3) 테이블생성
CREATE TABLE TEMP08(COL1 BLOB);
(4) 그림파일 삽입 - PROCEDURE 를 이용하여 그림을 삽입
CREATE OR REPLACE PROCEDURE PROC_IMG_INSERT(
P_DIR IN VARCHAR2,P_PHOTO_NAME VARCHAR2)
IS
V_SOURCE BFILE;
V_DEPT BLOB;
V_LENGTH NUMBER(5):=0;
BEGIN
V_SOURCE:=BFILENAME(P_DIR,P_PHOTO_NAME);
INSERT INTO TEMP08(COL1)
VALUES(EMPTY_BLOB());
--RETURNING BLOBDATE INTO V_DEPT;
-- V_DEPT:=BLOBDATE;
--RETURN V_DEPT;
DBMS_LOB.FILEOPEN(V_SOURCE,DBMS_LOB.FILE_READONLY);
V_LENGTH:=DBMS_LOB.GETLENGTH(V_SOURCE);
DBMS_LOB.LOADFROMFILE(V_DEPT,V_SOURCE,V_LENGTH);
DBMS_LOB.FILECLOSE(V_SOURCE);
COMMIT;
END;
그림파일저장 BLOCK생성
DECLARE
BEGIN
PROC_IMG_INSERT('TEST_DIR','SAMPLE01.JFIF');
PROC_IMG_INSERT('TEST_DIR','SAMPLE02.JFIF');
PROC_IMG_INSERT('TEST_DIR','SAMPLE03.JFIF');
END;
반응형
'DB > SQL(오라클)' 카테고리의 다른 글
오라클(SQL)연산자 (사칙 연산자, in, or, any, between) (0) | 2021.03.12 |
---|---|
오라클(SQL) select 문 예시 (0) | 2021.03.12 |
오라클(SQL)자료형(숫자자료형 ,정밀도,날짜 자료형 ) (0) | 2021.03.12 |
오라클(SQL)데이터 타입 (0) | 2021.03.12 |
PL/SQL의 종류 Stored procedure (0) | 2021.03.12 |