将存储图片的BLOB字段批量导出
--(1)生成图片存储过程
CREATE OR REPLACE PROCEDURE TMU_TMEDMS.GET_PIC_BLOB(i_xh VARCHAR2) IS
l_file UTL_FILE.FILE_TYPE;
l_buffer RAW(32767);
l_amount BINARY_INTEGER := 32767;
l_pos INTEGER := 1;
l_blob BLOB;
l_blob_len INTEGER;
I_doc varchar2(50);
BEGIN
select s.content,s.doc_id into l_blob,I_doc from TMU_TMEDMS.T_TMEDMS_TM_SCAN_FILES s where s.id=i_xh;
l_blob_len := DBMS_LOB.GETLENGTH(l_blob);
l_file := UTL_FILE.FOPEN('BLOBDIR', I_doc || '.jpg', 'WB', l_blob_len);
WHILE l_pos < l_blob_len LOOP
DBMS_LOB.READ(l_blob, l_amount, l_pos, l_buffer);
UTL_FILE.PUT_RAW(l_file, l_buffer, TRUE);
l_pos := l_pos + l_amount;
END LOOP;
UTL_FILE.FCLOSE(l_

本文介绍如何在Oracle中批量导出存储在BLOB字段中的图片。首先,创建一个存储过程GET_PIC_BLOB用于读取并导出指定ID的图片。接着,设置一个目录BLOBDIR来保存导出的文件。最后,通过游标和循环调用存储过程,批量导出满足特定条件的图片,并将记录插入到record表中。
最低0.47元/天 解锁文章
3941

被折叠的 条评论
为什么被折叠?



