Clob to blob convert on oracle (function)

oracle

 

FUNCTION sf_clobtoblob (i_data_cl CLOB)
RETURN BLOB
IS
v_out_bl BLOB;
clob_size NUMBER;
pos NUMBER;
charbuff VARCHAR2 (32767);
dbuffer RAW (32767);
v_readsize_nr NUMBER;
v_line_nr NUMBER;
BEGIN
DBMS_LOB.createtemporary (v_out_bl, TRUE, DBMS_LOB.call);
v_line_nr :=
GREATEST (65,
INSTR (i_data_cl, CHR (10)),
INSTR (i_data_cl, CHR (13)));
v_readsize_nr := FLOOR (32767 / v_line_nr) * v_line_nr;
clob_size := DBMS_LOB.getlength (i_data_cl);
pos := 1;

WHILE (pos < clob_size)
LOOP
DBMS_LOB.read (i_data_cl,
v_readsize_nr,
pos,
charbuff);
dbuffer :=
UTL_ENCODE.base64_decode (UTL_RAW.cast_to_raw (charbuff));
DBMS_LOB.writeappend (v_out_bl,
UTL_RAW.LENGTH (dbuffer),
dbuffer);
pos := pos + v_readsize_nr;
END LOOP;

RETURN v_out_bl;
END sf_clobtoblob;

Benzer Yazılar

Henüz yorum yapılmamış

Yorum Yazın

Su elementleri kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Arama
RSS
Beni yukari isinla