본문 바로가기

DB/__Oracle

blob 타입을 clob 타입으로 변경(함수)

SQL에서 blob과 clob간 상호 변환이 자동으로 않됩니다.
그떄 사용할 수 있는 함수입니다.

CREATE OR REPLACE FUNCTION ENC_BLOBTOCLOB(b IN BLOB)
RETURN CLOB
IS
L_BLOB BLOB;
L_CLOB CLOB := 'X';
L_DEST_OFFSSET INTEGER := 1;
L_SRC_OFFSSET INTEGER := 1;
L_LANG_CONTEXT INTEGER := DBMS_LOB.DEFAULT_LANG_CTX;
L_WARNING INTEGER;

BEGIN

L_BLOB := B;
IF DBMS_LOB.GETLENGTH(B) != 0 THEN
DBMS_LOB.CONVERTTOCLOB
( DEST_LOB => L_CLOB
, SRC_BLOB => L_BLOB
, AMOUNT => DBMS_LOB.LOBMAXSIZE
, DEST_OFFSET => L_DEST_OFFSSET
, SRC_OFFSET => L_SRC_OFFSSET
, BLOB_CSID => DBMS_LOB.DEFAULT_CSID
, LANG_CONTEXT => L_LANG_CONTEXT
, WARNING => L_WARNING
);
END IF;

RETURN L_CLOB;

END ENC_BLOBTOCLOB;
/